From ade2bf6df5e820d424e43c5538b9f1552cef6b10 Mon Sep 17 00:00:00 2001 From: marcosomma Date: Wed, 24 Feb 2016 12:29:36 +0100 Subject: [PATCH 001/137] Added Organization API Closes gh-296 --- README.md | 26 ++++++++++++++++++++--- dist/github.bundle.min.js | 4 ++-- dist/github.bundle.min.js.map | 2 +- dist/github.min.js | 2 +- dist/github.min.js.map | 2 +- src/github.js | 12 +++++++++++ test/test.org.js | 39 +++++++++++++++++++++++++++++++++++ test/user.json | 5 +++-- 8 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 test/test.org.js diff --git a/README.md b/README.md index 045a66bf..b957557c 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,12 @@ bower install github-api [![Sauce Test Status](https://saucelabs.com/browser-matrix/githubjs.svg)](https://saucelabs.com/u/githubjs) -**Note**: Starting from version 0.10.8, Github.js supports **Internet Explorer 9**. However, the underlying +**Note**: Starting from version 0.10.8, Github.js supports **Internet Explorer 9**. However, the underlying methodology used under the hood to perform CORS requests (the `XDomainRequest` object), [has limitations](http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx). -In particular, requests must be targeted to the same scheme as the hosting page. This means that if a page is at +In particular, requests must be targeted to the same scheme as the hosting page. This means that if a page is at http://example.com, your target URL must also begin with HTTP. Similarly, if your page is at https://example.com, then -your target URL must also begin with HTTPS. For this reason, if your requests are sent to the GitHub API (the default), +your target URL must also begin with HTTPS. For this reason, if your requests are sent to the GitHub API (the default), which are served via HTTPS, your page must use HTTPS too. ## GitHub Tools @@ -264,6 +264,26 @@ Unstar a repository. repo.unstar(owner, repository, function(err) {}); ``` +## Organization API + + +```js +var organization = github.getOrg(); +``` + +Create a new organization repository for the authenticated user + +```js +var repo = { + orgname: 'github-api-tests', + name: 'test' +}; + +organization.createRepo(repo, function(err, res) {}); +``` + +The repository description, homepage, private/public can also be set. [For a full list of options see the documentation](https://developer.github.com/v3/repos/#create). + ## User API diff --git a/dist/github.bundle.min.js b/dist/github.bundle.min.js index 56b02112..3324f17c 100644 --- a/dist/github.bundle.min.js +++ b/dist/github.bundle.min.js @@ -1,3 +1,3 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Github=e()}}(function(){var e;return function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in p)&&o.responseText?t:n)(o),p=null}},p.onerror=function(){n(new Error("Network Error")),p=null},r.isStandardBrowserEnv()){var m=e("./../helpers/cookies"),g=c.withCredentials||u(c.url)?m.read(c.xsrfCookieName):void 0;g&&(l[c.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(l,function(e,t){"undefined"==typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,e)}),c.withCredentials&&(p.withCredentials=!0),c.responseType)try{p.responseType=c.responseType}catch(v){if("json"!==p.responseType)throw v}r.isArrayBuffer(f)&&(f=new DataView(f)),p.send(f)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(e,t,n){"use strict";function r(e){this.defaults=i.merge({},e),this.interceptors={request:new u,response:new u}}var o=e("./defaults"),i=e("./utils"),s=e("./core/dispatchRequest"),u=e("./core/InterceptorManager"),a=e("./helpers/isAbsoluteURL"),c=e("./helpers/combineURLs"),f=e("./helpers/bind"),l=e("./helpers/transformData");r.prototype.request=function(e){"string"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!a(e.url)&&(e.url=c(e.baseURL,e.url)),e.withCredentials=e.withCredentials||this.defaults.withCredentials,e.data=l(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=[s,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n};var p=new r(o),h=t.exports=f(r.prototype.request,p);h.create=function(e){return new r(e)},h.defaults=p.defaults,h.all=function(e){return Promise.all(e)},h.spread=e("./helpers/spread"),h.interceptors=p.interceptors,i.forEach(["delete","get","head"],function(e){r.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))},h[e]=f(r.prototype[e],p)}),i.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))},h[e]=f(r.prototype[e],p)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(e,t,n){"use strict";function r(){this.handlers=[]}var o=e("./../utils");r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},t.exports=r},{"./../utils":17}],5:[function(e,t,n){(function(n){"use strict";t.exports=function(t){return new Promise(function(r,o){try{var i;"function"==typeof t.adapter?i=t.adapter:"undefined"!=typeof XMLHttpRequest?i=e("../adapters/xhr"):"undefined"!=typeof n&&(i=e("../adapters/http")),"function"==typeof i&&i(r,o,t)}catch(s){o(s)}})}}).call(this,e("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:20}],6:[function(e,t,n){"use strict";var r=e("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};t.exports={transformRequest:[function(e,t){return r.isFormData(e)?e:r.isArrayBuffer(e)?e:r.isArrayBufferView(e)?e.buffer:!r.isObject(e)||r.isFile(e)||r.isBlob(e)?e:(r.isUndefined(t)||(r.forEach(t,function(e,n){"content-type"===n.toLowerCase()&&(t["Content-Type"]=e)}),r.isUndefined(t["Content-Type"])&&(t["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(e))}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(o,"");try{e=JSON.parse(e)}catch(t){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(e,t,n){"use strict";t.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");t=t<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=e("./../utils");t.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(t+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},{"./../utils":17}],10:[function(e,t,n){"use strict";t.exports=function(e,t){return e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"")}},{}],11:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],13:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e){var t,n,o,i={};return e?(r.forEach(e.split("\n"),function(e){o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t&&(i[t]=i[t]?i[t]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],16:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},{"./../utils":17}],17:[function(e,t,n){"use strict";function r(e){return"[object Array]"===y.call(e)}function o(e){return"[object ArrayBuffer]"===y.call(e)}function i(e){return"[object FormData]"===y.call(e)}function s(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function u(e){return"string"==typeof e}function a(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function f(e){return null!==e&&"object"==typeof e}function l(e){return"[object Date]"===y.call(e)}function p(e){return"[object File]"===y.call(e)}function h(e){return"[object Blob]"===y.call(e)}function d(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function m(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function g(e,t){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||r(e)||(e=[e]),r(e))for(var n=0,o=e.length;o>n;n++)t.call(null,e[n],n,e);else for(var i in e)e.hasOwnProperty(i)&&t.call(null,e[i],i,e)}function v(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=v(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;r>n;n++)g(arguments[n],e);return t}var y=Object.prototype.toString;t.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:f,isUndefined:c,isDate:l,isFile:p,isBlob:h,isStandardBrowserEnv:m,forEach:g,merge:v,trim:d}},{}],18:[function(t,n,r){(function(t){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof t&&t;(u.global===u||u.window===u)&&(o=u);var a=function(e){this.message=e};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var c=function(e){throw new a(e)},f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,p=function(e){e=String(e).replace(l,"");var t=e.length;t%4==0&&(e=e.replace(/==?$/,""),t=e.length),(t%4==1||/[^+a-zA-Z0-9\/]/.test(e))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},h=function(e){e=String(e),/[^\0-\xFF]/.test(e)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,r,o,i=e.length%3,s="",u=-1,a=e.length-i;++u>18&63)+f.charAt(o>>12&63)+f.charAt(o>>6&63)+f.charAt(63&o);return 2==i?(t=e.charCodeAt(u)<<8,n=e.charCodeAt(++u),o=t+n,s+=f.charAt(o>>10)+f.charAt(o>>4&63)+f.charAt(o<<2&63)+"="):1==i&&(o=e.charCodeAt(u),s+=f.charAt(o>>2)+f.charAt(o<<4&63)+"=="),s},d={encode:h,decode:p,version:"0.1.0"};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var m in d)d.hasOwnProperty(m)&&(i[m]=d[m]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,n,r){(function(r,o){(function(){"use strict";function i(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){V=e}function a(e){$=e}function c(){return function(){r.nextTick(d)}}function f(){return function(){z(d)}}function l(){var e=0,t=new Q(d),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;Y>e;e+=2){var t=ne[e],n=ne[e+1];t(n),ne[e]=void 0,ne[e+1]=void 0}Y=0}function m(){try{var e=t,n=e("vertx");return z=n.runOnLoop||n.runOnContext,f()}catch(r){return h()}}function g(e,t){var n=this,r=n._state;if(r===se&&!e||r===ue&&!t)return this;var o=new this.constructor(y),i=n._result;if(r){var s=arguments[r-1];$(function(){P(r,o,s,i)})}else j(n,o,e,t);return o}function v(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return C(n,e),n}function y(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(e){try{return e.then}catch(t){return ae.error=t,ae}}function T(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function R(e,t,n){$(function(e){var r=!1,o=T(n,t,function(n){r||(r=!0,t!==n?C(e,n):S(e,n))},function(t){r||(r=!0,U(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,U(e,o))},e)}function _(e,t){t._state===se?S(e,t._result):t._state===ue?U(e,t._result):j(t,void 0,function(t){C(e,t)},function(t){U(e,t)})}function A(e,t,n){t.constructor===e.constructor&&n===re&&constructor.resolve===oe?_(e,t):n===ae?U(e,ae.error):void 0===n?S(e,t):s(n)?R(e,t,n):S(e,t)}function C(e,t){e===t?U(e,w()):i(t)?A(e,t,E(t)):S(e,t)}function x(e){e._onerror&&e._onerror(e._result),I(e)}function S(e,t){e._state===ie&&(e._result=t,e._state=se,0!==e._subscribers.length&&$(I,e))}function U(e,t){e._state===ie&&(e._state=ue,e._result=t,$(x,e))}function j(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+se]=n,o[i+ue]=r,0===i&&e._state&&$(I,e)}function I(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,o,i=e._result,s=0;ss;s++)j(r.resolve(e[s]),void 0,t,n);return o}function q(e){var t=this,n=new t(y);return U(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function B(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&("function"!=typeof e&&H(),this instanceof F?D(this,e):B())}function N(e,t){this._instanceConstructor=e,this.promise=new e(y),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&S(this.promise,this._result))):U(this.promise,this._validationError())}function M(){var e;if("undefined"!=typeof o)e=o;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(e.Promise=de)}var X;X=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var z,V,J,K=X,Y=0,$=function(e,t){ne[Y]=e,ne[Y+1]=t,Y+=2,2===Y&&(V?V(d):J())},W="undefined"!=typeof window?window:void 0,Z=W||{},Q=Z.MutationObserver||Z.WebKitMutationObserver,ee="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ne=new Array(1e3);J=ee?c():Q?l():te?p():void 0===W&&"function"==typeof t?m():h();var re=g,oe=v,ie=void 0,se=1,ue=2,ae=new O,ce=new O,fe=L,le=k,pe=q,he=0,de=F;F.all=fe,F.race=le,F.resolve=oe,F.reject=pe,F._setScheduler=u,F._setAsap=a,F._asap=$,F.prototype={constructor:F,then:re,"catch":function(e){return this.then(null,e)}};var me=N;N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===ie&&e>n;n++)this._eachEntry(t[n],n)},N.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===oe){var o=E(e);if(o===re&&e._state!==ie)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(n===de){var i=new n(y);A(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new n(function(t){t(e)}),t)}else this._willSettleAt(r(e),t)},N.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===ie&&(this._remaining--,e===ue?U(r,n):this._result[t]=n),0===this._remaining&&S(r,this._result)},N.prototype._willSettleAt=function(e,t){var n=this;j(e,void 0,function(e){n._settledAt(se,t,e)},function(e){n._settledAt(ue,t,e)})};var ge=M,ve={Promise:de,polyfill:ge};"function"==typeof e&&e.amd?e(function(){return ve}):"undefined"!=typeof n&&n.exports?n.exports=ve:"undefined"!=typeof this&&(this.ES6Promise=ve),ge()}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:20}],20:[function(e,t,n){function r(){f=!1,u.length?c=u.concat(c):l=-1,c.length&&o()}function o(){if(!f){var e=setTimeout(r);f=!0;for(var t=c.length;t;){for(u=c,c=[];++l1)for(var n=1;no;)t=e.charCodeAt(o++),t>=55296&&56319>=t&&i>o?(n=e.charCodeAt(o++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--)):r.push(t);return r}function s(e){for(var t,n=e.length,r=-1,o="";++r65535&&(t-=65536,o+=b(t>>>10&1023|55296),t=56320|1023&t),o+=b(t);return o}function u(e){if(e>=55296&&57343>=e)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function a(e,t){return b(e>>t&63|128)}function c(e){if(0==(4294967168&e))return b(e);var t="";return 0==(4294965248&e)?t=b(e>>6&31|192):0==(4294901760&e)?(u(e),t=b(e>>12&15|224),t+=a(e,6)):0==(4292870144&e)&&(t=b(e>>18&7|240),t+=a(e,12),t+=a(e,6)),t+=b(63&e|128)}function f(e){for(var t,n=i(e),r=n.length,o=-1,s="";++o=y)throw Error("Invalid byte index");var e=255&v[w];if(w++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function p(){var e,t,n,r,o;if(w>y)throw Error("Invalid byte index");if(w==y)return!1;if(e=255&v[w],w++,0==(128&e))return e;if(192==(224&e)){var t=l();if(o=(31&e)<<6|t,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if(t=l(),n=l(),o=(15&e)<<12|t<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=l(),n=l(),r=l(),o=(15&e)<<18|t<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function h(e){v=i(e),y=v.length,w=0;for(var t,n=[];(t=p())!==!1;)n.push(t);return s(n)}var d="object"==typeof r&&r,m="object"==typeof n&&n&&n.exports==d&&n,g="object"==typeof t&&t;(g.global===g||g.window===g)&&(o=g);var v,y,w,b=String.fromCharCode,E={version:"2.0.0",encode:f,decode:h};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return E});else if(d&&!d.nodeType)if(m)m.exports=E;else{var T={},R=T.hasOwnProperty;for(var _ in E)R.call(E,_)&&(d[_]=E[_])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(t,n,r){"use strict";!function(r,o){"function"==typeof e&&e.amd?e(["es6-promise","base-64","utf8","axios"],function(e,t,n,i){return r.Github=o(e,t,n,i)}):"object"==typeof n&&n.exports?n.exports=o(t("es6-promise"),t("base-64"),t("utf8"),t("axios")):r.Github=o(r.Promise,r.base64,r.utf8,r.axios)}(this,function(e,t,n,r){function o(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,s,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",s&&"object"==typeof s&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var r in s)s.hasOwnProperty(r)&&(e+="&"+encodeURIComponent(r)+"="+encodeURIComponent(s[r]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var f={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:s?s:{},url:c()};return(e.token||e.username&&e.password)&&(f.headers.Authorization=e.token?"token "+e.token:"Basic "+o(e.username+":"+e.password)),r(f).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},s=i._requestAllPages=function(e,t){var r=[];!function o(){n("GET",e,null,function(n,i,s){if(n)return t(n);i instanceof Array||(i=[i]),r.push.apply(r,i);var u=(s.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,o()):t(n,r,s)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(e.type||"all")),r.push("sort="+encodeURIComponent(e.sort||"updated")),r.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&r.push("page="+encodeURIComponent(e.page)),n+="?"+r.join("&"),s(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var r="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var s=e.before;s.constructor===Date&&(s=s.toISOString()),o.push("before="+encodeURIComponent(s))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(r+="?"+o.join("&")),n("GET",r,null,t)},this.show=function(e,t){var r=e?"/users/"+e:"/user";n("GET",r,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var r="/users/"+e+"/repos",o=[];o.push("type="+encodeURIComponent(t.type||"all")),o.push("sort="+encodeURIComponent(t.sort||"updated")),o.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&o.push("page="+encodeURIComponent(t.page)),r+="?"+o.join("&"),s(r,n)},this.userStarred=function(e,t){s("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){s("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===f.branch&&f.sha?t(null,f.sha):void c.getRef("heads/"+e,function(n,r){f.branch=e,f.sha=r,t(n,r)})}var r,s=e.name,u=e.user,a=e.fullname,c=this;r=a?"/repos/"+a:"/repos/"+u+"/"+s;var f={branch:null,sha:null};this.getRef=function(e,t){n("GET",r+"/git/refs/"+e,null,function(e,n,r){return e?t(e):void t(null,n.object.sha,r)})},this.createRef=function(e,t){n("POST",r+"/git/refs",e,t)},this.deleteRef=function(t,o){n("DELETE",r+"/git/refs/"+t,e,o)},this.deleteRepo=function(t){n("DELETE",r,e,t)},this.listTags=function(e){n("GET",r+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var o=r+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.getPull=function(e,t){n("GET",r+"/pulls/"+e,null,t)},this.compare=function(e,t,o){n("GET",r+"/compare/"+e+"..."+t,null,o)},this.listBranches=function(e){n("GET",r+"/git/refs/heads",null,function(t,n,r){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,r))})},this.getBlob=function(e,t){n("GET",r+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,o){n("GET",r+"/git/commits/"+t,null,o)},this.getSha=function(e,t,o){return t&&""!==t?void n("GET",r+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?o(e):void o(null,t.sha,n)}):c.getRef("heads/"+e,o)},this.getStatuses=function(e,t){n("GET",r+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",r+"/git/trees/"+e,null,function(e,n,r){return e?t(e):void t(null,n.tree,r)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:o(e),encoding:"base64"},n("POST",r+"/git/blobs",e,function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.updateTree=function(e,t,o,i){var s={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:o}]};n("POST",r+"/git/trees",s,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",r+"/git/trees",{tree:e},function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.commit=function(t,o,s,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:s,author:{name:e.user,email:a.email},parents:[t],tree:o};n("POST",r+"/git/commits",c,function(e,t,n){return e?u(e):(f.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,o){n("PATCH",r+"/git/refs/heads/"+e,{sha:t},o)},this.show=function(e){n("GET",r,null,e)},this.contributors=function(e,t){t=t||1e3;var o=this;n("GET",r+"/stats/contributors",null,function(n,r,i){return n?e(n):void(202===i.status?setTimeout(function(){o.contributors(e,t)},t):e(n,r,i))})},this.contents=function(e,t,o){t=encodeURI(t),n("GET",r+"/contents"+(t?"/"+t:""),{ref:e},o)},this.fork=function(e){n("POST",r+"/forks",null,e)},this.listForks=function(e){n("GET",r+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,r){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:r},n)})},this.createPullRequest=function(e,t){n("POST",r+"/pulls",e,t)},this.listHooks=function(e){n("GET",r+"/hooks",null,e)},this.getHook=function(e,t){n("GET",r+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",r+"/hooks",e,t)},this.editHook=function(e,t,o){n("PATCH",r+"/hooks/"+e,t,o)},this.deleteHook=function(e,t){n("DELETE",r+"/hooks/"+e,null,t)},this.read=function(e,t,o){n("GET",r+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,o,!0)},this.remove=function(e,t,o){c.getSha(e,t,function(i,s){return i?o(i):void n("DELETE",r+"/contents/"+t,{message:t+" is removed",sha:s,branch:e},o)})},this["delete"]=this.remove,this.move=function(e,n,r,o){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,s){s.forEach(function(e){e.path===n&&(e.path=r),"tree"===e.type&&delete e.sha}),c.postTree(s,function(t,r){c.commit(i,r,"Deleted "+n,function(t,n){c.updateHead(e,n,o)})})})})},this.write=function(e,t,i,s,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,f){var l={message:s,content:"undefined"==typeof u.encode||u.encode?o(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(l.sha=f),n("PUT",r+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var o=r+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var s=e.since;s.constructor===Date&&(s=s.toISOString()),i.push("since="+encodeURIComponent(s))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.isStarred=function(e,t,r){n("GET","/user/starred/"+e+"/"+t,null,r)},this.star=function(e,t,r){n("PUT","/user/starred/"+e+"/"+t,null,r)},this.unstar=function(e,t,r){n("DELETE","/user/starred/"+e+"/"+t,null,r)},this.createRelease=function(e,t){n("POST",r+"/releases",e,t)},this.editRelease=function(e,t,o){n("PATCH",r+"/releases/"+e,t,o)},this.getRelease=function(e,t){n("GET",r+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",r+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,r="/gists/"+t;this.read=function(e){n("GET",r,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",r,null,e)},this.fork=function(e){n("POST",r+"/fork",null,e)},this.update=function(e,t){n("PATCH",r,e,t)},this.star=function(e){n("PUT",r+"/star",null,e)},this.unstar=function(e){n("DELETE",r+"/star",null,e)},this.isStarred=function(e){n("GET",r+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,r){n("POST",t,e,r)},this.list=function(e,n){var r=[];for(var o in e)e.hasOwnProperty(o)&&r.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));s(t+"?"+r.join("&"),n)},this.comment=function(e,t,r){n("POST",e.comments_url,{body:t},r)},this.edit=function(e,r,o){n("PATCH",t+"/"+e,r,o)},this.get=function(e,r){n("GET",t+"/"+e,null,r)}},i.Search=function(e){var t="/search/",r="?q="+e.query;this.repositories=function(e,o){n("GET",t+"repositories"+r,e,o)},this.code=function(e,o){n("GET",t+"code"+r,e,o)},this.issues=function(e,o){n("GET",t+"issues"+r,e,o)},this.users=function(e,o){n("GET",t+"users"+r,e,o)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){ -return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i})},{axios:1,"base-64":18,"es6-promise":19,utf8:21}]},{},[22])(22)}); +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Github=e()}}(function(){var e;return function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in p)&&o.responseText?t:n)(o),p=null}},p.onerror=function(){n(new Error("Network Error")),p=null},r.isStandardBrowserEnv()){var m=e("./../helpers/cookies"),g=c.withCredentials||u(c.url)?m.read(c.xsrfCookieName):void 0;g&&(l[c.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(l,function(e,t){"undefined"==typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,e)}),c.withCredentials&&(p.withCredentials=!0),c.responseType)try{p.responseType=c.responseType}catch(v){if("json"!==p.responseType)throw v}r.isArrayBuffer(f)&&(f=new DataView(f)),p.send(f)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(e,t,n){"use strict";function r(e){this.defaults=i.merge({},e),this.interceptors={request:new u,response:new u}}var o=e("./defaults"),i=e("./utils"),s=e("./core/dispatchRequest"),u=e("./core/InterceptorManager"),a=e("./helpers/isAbsoluteURL"),c=e("./helpers/combineURLs"),f=e("./helpers/bind"),l=e("./helpers/transformData");r.prototype.request=function(e){"string"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!a(e.url)&&(e.url=c(e.baseURL,e.url)),e.withCredentials=e.withCredentials||this.defaults.withCredentials,e.data=l(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=[s,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n};var p=new r(o),h=t.exports=f(r.prototype.request,p);h.create=function(e){return new r(e)},h.defaults=p.defaults,h.all=function(e){return Promise.all(e)},h.spread=e("./helpers/spread"),h.interceptors=p.interceptors,i.forEach(["delete","get","head"],function(e){r.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))},h[e]=f(r.prototype[e],p)}),i.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))},h[e]=f(r.prototype[e],p)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(e,t,n){"use strict";function r(){this.handlers=[]}var o=e("./../utils");r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},t.exports=r},{"./../utils":17}],5:[function(e,t,n){(function(n){"use strict";t.exports=function(t){return new Promise(function(r,o){try{var i;"function"==typeof t.adapter?i=t.adapter:"undefined"!=typeof XMLHttpRequest?i=e("../adapters/xhr"):"undefined"!=typeof n&&(i=e("../adapters/http")),"function"==typeof i&&i(r,o,t)}catch(s){o(s)}})}}).call(this,e("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:20}],6:[function(e,t,n){"use strict";var r=e("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};t.exports={transformRequest:[function(e,t){return r.isFormData(e)?e:r.isArrayBuffer(e)?e:r.isArrayBufferView(e)?e.buffer:!r.isObject(e)||r.isFile(e)||r.isBlob(e)?e:(r.isUndefined(t)||(r.forEach(t,function(e,n){"content-type"===n.toLowerCase()&&(t["Content-Type"]=e)}),r.isUndefined(t["Content-Type"])&&(t["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(e))}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(o,"");try{e=JSON.parse(e)}catch(t){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(e,t,n){"use strict";t.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");t=t<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=e("./../utils");t.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(t+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},{"./../utils":17}],10:[function(e,t,n){"use strict";t.exports=function(e,t){return e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"")}},{}],11:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],13:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e){var t,n,o,i={};return e?(r.forEach(e.split("\n"),function(e){o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t&&(i[t]=i[t]?i[t]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],16:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},{"./../utils":17}],17:[function(e,t,n){"use strict";function r(e){return"[object Array]"===y.call(e)}function o(e){return"[object ArrayBuffer]"===y.call(e)}function i(e){return"[object FormData]"===y.call(e)}function s(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function u(e){return"string"==typeof e}function a(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function f(e){return null!==e&&"object"==typeof e}function l(e){return"[object Date]"===y.call(e)}function p(e){return"[object File]"===y.call(e)}function h(e){return"[object Blob]"===y.call(e)}function d(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function m(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function g(e,t){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||r(e)||(e=[e]),r(e))for(var n=0,o=e.length;o>n;n++)t.call(null,e[n],n,e);else for(var i in e)e.hasOwnProperty(i)&&t.call(null,e[i],i,e)}function v(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=v(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;r>n;n++)g(arguments[n],e);return t}var y=Object.prototype.toString;t.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:f,isUndefined:c,isDate:l,isFile:p,isBlob:h,isStandardBrowserEnv:m,forEach:g,merge:v,trim:d}},{}],18:[function(t,n,r){(function(t){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof t&&t;u.global!==u&&u.window!==u||(o=u);var a=function(e){this.message=e};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var c=function(e){throw new a(e)},f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,p=function(e){e=String(e).replace(l,"");var t=e.length;t%4==0&&(e=e.replace(/==?$/,""),t=e.length),(t%4==1||/[^+a-zA-Z0-9\/]/.test(e))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},h=function(e){e=String(e),/[^\0-\xFF]/.test(e)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,r,o,i=e.length%3,s="",u=-1,a=e.length-i;++u>18&63)+f.charAt(o>>12&63)+f.charAt(o>>6&63)+f.charAt(63&o);return 2==i?(t=e.charCodeAt(u)<<8,n=e.charCodeAt(++u),o=t+n,s+=f.charAt(o>>10)+f.charAt(o>>4&63)+f.charAt(o<<2&63)+"="):1==i&&(o=e.charCodeAt(u),s+=f.charAt(o>>2)+f.charAt(o<<4&63)+"=="),s},d={encode:h,decode:p,version:"0.1.0"};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var m in d)d.hasOwnProperty(m)&&(i[m]=d[m]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,n,r){(function(r,o){(function(){"use strict";function i(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){V=e}function a(e){$=e}function c(){return function(){r.nextTick(d)}}function f(){return function(){X(d)}}function l(){var e=0,t=new Q(d),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;Y>e;e+=2){var t=ne[e],n=ne[e+1];t(n),ne[e]=void 0,ne[e+1]=void 0}Y=0}function m(){try{var e=t,n=e("vertx");return X=n.runOnLoop||n.runOnContext,f()}catch(r){return h()}}function g(e,t){var n=this,r=n._state;if(r===se&&!e||r===ue&&!t)return this;var o=new this.constructor(y),i=n._result;if(r){var s=arguments[r-1];$(function(){P(r,o,s,i)})}else O(n,o,e,t);return o}function v(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return C(n,e),n}function y(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(e){try{return e.then}catch(t){return ae.error=t,ae}}function T(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function R(e,t,n){$(function(e){var r=!1,o=T(n,t,function(n){r||(r=!0,t!==n?C(e,n):S(e,n))},function(t){r||(r=!0,U(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,U(e,o))},e)}function _(e,t){t._state===se?S(e,t._result):t._state===ue?U(e,t._result):O(t,void 0,function(t){C(e,t)},function(t){U(e,t)})}function A(e,t,n){t.constructor===e.constructor&&n===re&&constructor.resolve===oe?_(e,t):n===ae?U(e,ae.error):void 0===n?S(e,t):s(n)?R(e,t,n):S(e,t)}function C(e,t){e===t?U(e,w()):i(t)?A(e,t,E(t)):S(e,t)}function x(e){e._onerror&&e._onerror(e._result),j(e)}function S(e,t){e._state===ie&&(e._result=t,e._state=se,0!==e._subscribers.length&&$(j,e))}function U(e,t){e._state===ie&&(e._state=ue,e._result=t,$(x,e))}function O(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+se]=n,o[i+ue]=r,0===i&&e._state&&$(j,e)}function j(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,o,i=e._result,s=0;ss;s++)O(r.resolve(e[s]),void 0,t,n);return o}function q(e){var t=this,n=new t(y);return U(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function B(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&("function"!=typeof e&&H(),this instanceof F?D(this,e):B())}function N(e,t){this._instanceConstructor=e,this.promise=new e(y),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&S(this.promise,this._result))):U(this.promise,this._validationError())}function M(){var e;if("undefined"!=typeof o)e=o;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;n&&"[object Promise]"===Object.prototype.toString.call(n.resolve())&&!n.cast||(e.Promise=de)}var z;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var X,V,J,K=z,Y=0,$=function(e,t){ne[Y]=e,ne[Y+1]=t,Y+=2,2===Y&&(V?V(d):J())},W="undefined"!=typeof window?window:void 0,Z=W||{},Q=Z.MutationObserver||Z.WebKitMutationObserver,ee="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ne=new Array(1e3);J=ee?c():Q?l():te?p():void 0===W&&"function"==typeof t?m():h();var re=g,oe=v,ie=void 0,se=1,ue=2,ae=new I,ce=new I,fe=L,le=k,pe=q,he=0,de=F;F.all=fe,F.race=le,F.resolve=oe,F.reject=pe,F._setScheduler=u,F._setAsap=a,F._asap=$,F.prototype={constructor:F,then:re,"catch":function(e){return this.then(null,e)}};var me=N;N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===ie&&e>n;n++)this._eachEntry(t[n],n)},N.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===oe){var o=E(e);if(o===re&&e._state!==ie)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(n===de){var i=new n(y);A(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new n(function(t){t(e)}),t)}else this._willSettleAt(r(e),t)},N.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===ie&&(this._remaining--,e===ue?U(r,n):this._result[t]=n),0===this._remaining&&S(r,this._result)},N.prototype._willSettleAt=function(e,t){var n=this;O(e,void 0,function(e){n._settledAt(se,t,e)},function(e){n._settledAt(ue,t,e)})};var ge=M,ve={Promise:de,polyfill:ge};"function"==typeof e&&e.amd?e(function(){return ve}):"undefined"!=typeof n&&n.exports?n.exports=ve:"undefined"!=typeof this&&(this.ES6Promise=ve),ge()}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:20}],20:[function(e,t,n){function r(){f=!1,u.length?c=u.concat(c):l=-1,c.length&&o()}function o(){if(!f){var e=setTimeout(r);f=!0;for(var t=c.length;t;){for(u=c,c=[];++l1)for(var n=1;no;)t=e.charCodeAt(o++),t>=55296&&56319>=t&&i>o?(n=e.charCodeAt(o++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--)):r.push(t);return r}function s(e){for(var t,n=e.length,r=-1,o="";++r65535&&(t-=65536,o+=b(t>>>10&1023|55296),t=56320|1023&t),o+=b(t);return o}function u(e){if(e>=55296&&57343>=e)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function a(e,t){return b(e>>t&63|128)}function c(e){if(0==(4294967168&e))return b(e);var t="";return 0==(4294965248&e)?t=b(e>>6&31|192):0==(4294901760&e)?(u(e),t=b(e>>12&15|224),t+=a(e,6)):0==(4292870144&e)&&(t=b(e>>18&7|240),t+=a(e,12),t+=a(e,6)),t+=b(63&e|128)}function f(e){for(var t,n=i(e),r=n.length,o=-1,s="";++o=y)throw Error("Invalid byte index");var e=255&v[w];if(w++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function p(){var e,t,n,r,o;if(w>y)throw Error("Invalid byte index");if(w==y)return!1;if(e=255&v[w],w++,0==(128&e))return e;if(192==(224&e)){var t=l();if(o=(31&e)<<6|t,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if(t=l(),n=l(),o=(15&e)<<12|t<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=l(),n=l(),r=l(),o=(15&e)<<18|t<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function h(e){v=i(e),y=v.length,w=0;for(var t,n=[];(t=p())!==!1;)n.push(t);return s(n)}var d="object"==typeof r&&r,m="object"==typeof n&&n&&n.exports==d&&n,g="object"==typeof t&&t;g.global!==g&&g.window!==g||(o=g);var v,y,w,b=String.fromCharCode,E={version:"2.0.0",encode:f,decode:h};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return E});else if(d&&!d.nodeType)if(m)m.exports=E;else{var T={},R=T.hasOwnProperty;for(var _ in E)R.call(E,_)&&(d[_]=E[_])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(t,n,r){"use strict";!function(r,o){"function"==typeof e&&e.amd?e(["es6-promise","base-64","utf8","axios"],function(e,t,n,i){return r.Github=o(e,t,n,i)}):"object"==typeof n&&n.exports?n.exports=o(t("es6-promise"),t("base-64"),t("utf8"),t("axios")):r.Github=o(r.Promise,r.base64,r.utf8,r.axios)}(this,function(e,t,n,r){function o(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,s,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",s&&"object"==typeof s&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var r in s)s.hasOwnProperty(r)&&(e+="&"+encodeURIComponent(r)+"="+encodeURIComponent(s[r]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var f={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:s?s:{},url:c()};return(e.token||e.username&&e.password)&&(f.headers.Authorization=e.token?"token "+e.token:"Basic "+o(e.username+":"+e.password)),r(f).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},s=i._requestAllPages=function(e,t){var r=[];!function o(){n("GET",e,null,function(n,i,s){if(n)return t(n);i instanceof Array||(i=[i]),r.push.apply(r,i);var u=(s.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,o()):t(n,r,s)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(e.type||"all")),r.push("sort="+encodeURIComponent(e.sort||"updated")),r.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&r.push("page="+encodeURIComponent(e.page)),n+="?"+r.join("&"),s(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var r="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var s=e.before;s.constructor===Date&&(s=s.toISOString()),o.push("before="+encodeURIComponent(s))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(r+="?"+o.join("&")),n("GET",r,null,t)},this.show=function(e,t){var r=e?"/users/"+e:"/user";n("GET",r,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var r="/users/"+e+"/repos",o=[];o.push("type="+encodeURIComponent(t.type||"all")),o.push("sort="+encodeURIComponent(t.sort||"updated")),o.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&o.push("page="+encodeURIComponent(t.page)),r+="?"+o.join("&"),s(r,n)},this.userStarred=function(e,t){s("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){s("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===f.branch&&f.sha?t(null,f.sha):void c.getRef("heads/"+e,function(n,r){f.branch=e,f.sha=r,t(n,r)})}var r,s=e.name,u=e.user,a=e.fullname,c=this;r=a?"/repos/"+a:"/repos/"+u+"/"+s;var f={branch:null,sha:null};this.getRef=function(e,t){n("GET",r+"/git/refs/"+e,null,function(e,n,r){return e?t(e):void t(null,n.object.sha,r)})},this.createRef=function(e,t){n("POST",r+"/git/refs",e,t)},this.deleteRef=function(t,o){n("DELETE",r+"/git/refs/"+t,e,o)},this.deleteRepo=function(t){n("DELETE",r,e,t)},this.listTags=function(e){n("GET",r+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var o=r+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.getPull=function(e,t){n("GET",r+"/pulls/"+e,null,t)},this.compare=function(e,t,o){n("GET",r+"/compare/"+e+"..."+t,null,o)},this.listBranches=function(e){n("GET",r+"/git/refs/heads",null,function(t,n,r){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,r))})},this.getBlob=function(e,t){n("GET",r+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,o){n("GET",r+"/git/commits/"+t,null,o)},this.getSha=function(e,t,o){return t&&""!==t?void n("GET",r+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?o(e):void o(null,t.sha,n)}):c.getRef("heads/"+e,o)},this.getStatuses=function(e,t){n("GET",r+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",r+"/git/trees/"+e,null,function(e,n,r){return e?t(e):void t(null,n.tree,r)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:o(e),encoding:"base64"},n("POST",r+"/git/blobs",e,function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.updateTree=function(e,t,o,i){var s={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:o}]};n("POST",r+"/git/trees",s,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",r+"/git/trees",{tree:e},function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.commit=function(t,o,s,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:s,author:{name:e.user,email:a.email},parents:[t],tree:o};n("POST",r+"/git/commits",c,function(e,t,n){return e?u(e):(f.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,o){n("PATCH",r+"/git/refs/heads/"+e,{sha:t},o)},this.show=function(e){n("GET",r,null,e)},this.contributors=function(e,t){t=t||1e3;var o=this;n("GET",r+"/stats/contributors",null,function(n,r,i){return n?e(n):void(202===i.status?setTimeout(function(){o.contributors(e,t)},t):e(n,r,i))})},this.contents=function(e,t,o){t=encodeURI(t),n("GET",r+"/contents"+(t?"/"+t:""),{ref:e},o)},this.fork=function(e){n("POST",r+"/forks",null,e)},this.listForks=function(e){n("GET",r+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,r){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:r},n)})},this.createPullRequest=function(e,t){n("POST",r+"/pulls",e,t)},this.listHooks=function(e){n("GET",r+"/hooks",null,e)},this.getHook=function(e,t){n("GET",r+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",r+"/hooks",e,t)},this.editHook=function(e,t,o){n("PATCH",r+"/hooks/"+e,t,o)},this.deleteHook=function(e,t){n("DELETE",r+"/hooks/"+e,null,t)},this.read=function(e,t,o){n("GET",r+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,o,!0)},this.remove=function(e,t,o){c.getSha(e,t,function(i,s){return i?o(i):void n("DELETE",r+"/contents/"+t,{message:t+" is removed",sha:s,branch:e},o)})},this["delete"]=this.remove,this.move=function(e,n,r,o){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,s){s.forEach(function(e){e.path===n&&(e.path=r),"tree"===e.type&&delete e.sha}),c.postTree(s,function(t,r){c.commit(i,r,"Deleted "+n,function(t,n){c.updateHead(e,n,o)})})})})},this.write=function(e,t,i,s,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,f){var l={message:s,content:"undefined"==typeof u.encode||u.encode?o(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(l.sha=f),n("PUT",r+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var o=r+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var s=e.since;s.constructor===Date&&(s=s.toISOString()),i.push("since="+encodeURIComponent(s))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.isStarred=function(e,t,r){n("GET","/user/starred/"+e+"/"+t,null,r)},this.star=function(e,t,r){n("PUT","/user/starred/"+e+"/"+t,null,r)},this.unstar=function(e,t,r){n("DELETE","/user/starred/"+e+"/"+t,null,r)},this.createRelease=function(e,t){n("POST",r+"/releases",e,t)},this.editRelease=function(e,t,o){n("PATCH",r+"/releases/"+e,t,o)},this.getRelease=function(e,t){n("GET",r+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",r+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,r="/gists/"+t;this.read=function(e){n("GET",r,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",r,null,e)},this.fork=function(e){n("POST",r+"/fork",null,e)},this.update=function(e,t){n("PATCH",r,e,t)},this.star=function(e){n("PUT",r+"/star",null,e)},this.unstar=function(e){n("DELETE",r+"/star",null,e)},this.isStarred=function(e){n("GET",r+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,r){n("POST",t,e,r)},this.list=function(e,n){var r=[];for(var o in e)e.hasOwnProperty(o)&&r.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));s(t+"?"+r.join("&"),n)},this.comment=function(e,t,r){n("POST",e.comments_url,{body:t},r)},this.edit=function(e,r,o){n("PATCH",t+"/"+e,r,o)},this.get=function(e,r){n("GET",t+"/"+e,null,r)}},i.Search=function(e){var t="/search/",r="?q="+e.query;this.repositories=function(e,o){n("GET",t+"repositories"+r,e,o)},this.code=function(e,o){n("GET",t+"code"+r,e,o)},this.issues=function(e,o){n("GET",t+"issues"+r,e,o)},this.users=function(e,o){n("GET",t+"users"+r,e,o)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e); +}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i})},{axios:1,"base-64":18,"es6-promise":19,utf8:21}]},{},[22])(22)}); //# sourceMappingURL=github.bundle.min.js.map diff --git a/dist/github.bundle.min.js.map b/dist/github.bundle.min.js.map index 7580a0bd..9914cbb4 100644 --- a/dist/github.bundle.min.js.map +++ b/dist/github.bundle.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"lib$es6$promise$utils$$objectOrFunction","x","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","parent","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","object","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","TypeError","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",20,"cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","clearTimeout","Item","fun","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",21,"ucs2decode","string","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","codePoint","createByte","encodeCodePoint","symbol","utf8encode","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","tmp","utf8",22,"factory","Base64","Utf8","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","param","getTime","token","_requestAllPages","results","iterate","err","res","xhr","next","getResponseHeader","filter","link","exec","pop","User","repos","type","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","list","query","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":20}],6:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n\n},{}],8:[function(require,module,exports){\n'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n\n},{}],9:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n\n},{}],11:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n\n},{}],13:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n\n},{}],16:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":20}],20:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],21:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],22:[function(require,module,exports){\n/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n\n},{\"axios\":1,\"base-64\":18,\"es6-promise\":19,\"utf8\":21}]},{},[22])(22)\n});\n\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\nvar buildURL = require('./../helpers/buildURL');\r\nvar parseHeaders = require('./../helpers/parseHeaders');\r\nvar transformData = require('./../helpers/transformData');\r\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\r\nvar btoa = window.btoa || require('./../helpers/btoa');\r\n\r\nmodule.exports = function xhrAdapter(resolve, reject, config) {\r\n var requestData = config.data;\r\n var requestHeaders = config.headers;\r\n\r\n if (utils.isFormData(requestData)) {\r\n delete requestHeaders['Content-Type']; // Let the browser set it\r\n }\r\n\r\n var request = new XMLHttpRequest();\r\n\r\n // For IE 8/9 CORS support\r\n // Only supports POST and GET calls and doesn't returns the response headers.\r\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\r\n request = new window.XDomainRequest();\r\n }\r\n\r\n // HTTP basic authentication\r\n if (config.auth) {\r\n var username = config.auth.username || '';\r\n var password = config.auth.password || '';\r\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\r\n }\r\n\r\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\r\n\r\n // Set the request timeout in MS\r\n request.timeout = config.timeout;\r\n\r\n // Listen for ready state\r\n request.onload = function handleLoad() {\r\n if (!request) {\r\n return;\r\n }\r\n // Prepare the response\r\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\r\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\r\n var response = {\r\n data: transformData(\r\n responseData,\r\n responseHeaders,\r\n config.transformResponse\r\n ),\r\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\r\n status: request.status === 1223 ? 204 : request.status,\r\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\r\n headers: responseHeaders,\r\n config: config,\r\n request: request\r\n };\r\n\r\n // Resolve or reject the Promise based on the status\r\n ((response.status >= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n","'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n","'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n","'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n","'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n","'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n","'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n","'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"lib$es6$promise$utils$$objectOrFunction","x","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","parent","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","object","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","TypeError","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",20,"cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","clearTimeout","Item","fun","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",21,"ucs2decode","string","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","codePoint","createByte","encodeCodePoint","symbol","utf8encode","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","tmp","utf8",22,"factory","Base64","Utf8","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","param","getTime","token","_requestAllPages","results","iterate","err","res","xhr","next","getResponseHeader","filter","link","exec","pop","User","repos","type","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","list","query","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":20}],6:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n\n},{}],8:[function(require,module,exports){\n'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n\n},{}],9:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n\n},{}],11:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n\n},{}],13:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n\n},{}],16:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":20}],20:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],21:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],22:[function(require,module,exports){\n/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n\n},{\"axios\":1,\"base-64\":18,\"es6-promise\":19,\"utf8\":21}]},{},[22])(22)\n});\n\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\nvar buildURL = require('./../helpers/buildURL');\r\nvar parseHeaders = require('./../helpers/parseHeaders');\r\nvar transformData = require('./../helpers/transformData');\r\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\r\nvar btoa = window.btoa || require('./../helpers/btoa');\r\n\r\nmodule.exports = function xhrAdapter(resolve, reject, config) {\r\n var requestData = config.data;\r\n var requestHeaders = config.headers;\r\n\r\n if (utils.isFormData(requestData)) {\r\n delete requestHeaders['Content-Type']; // Let the browser set it\r\n }\r\n\r\n var request = new XMLHttpRequest();\r\n\r\n // For IE 8/9 CORS support\r\n // Only supports POST and GET calls and doesn't returns the response headers.\r\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\r\n request = new window.XDomainRequest();\r\n }\r\n\r\n // HTTP basic authentication\r\n if (config.auth) {\r\n var username = config.auth.username || '';\r\n var password = config.auth.password || '';\r\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\r\n }\r\n\r\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\r\n\r\n // Set the request timeout in MS\r\n request.timeout = config.timeout;\r\n\r\n // Listen for ready state\r\n request.onload = function handleLoad() {\r\n if (!request) {\r\n return;\r\n }\r\n // Prepare the response\r\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\r\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\r\n var response = {\r\n data: transformData(\r\n responseData,\r\n responseHeaders,\r\n config.transformResponse\r\n ),\r\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\r\n status: request.status === 1223 ? 204 : request.status,\r\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\r\n headers: responseHeaders,\r\n config: config,\r\n request: request\r\n };\r\n\r\n // Resolve or reject the Promise based on the status\r\n ((response.status >= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n","'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n","'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n","'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n","'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n","'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n","'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n","'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.min.js b/dist/github.min.js index e178e5da..bb12d87c 100644 --- a/dist/github.min.js +++ b/dist/github.min.js @@ -1,2 +1,2 @@ -"use strict";!function(e,t){"function"==typeof define&&define.amd?define(["es6-promise","base-64","utf8","axios"],function(n,o,s,i){return e.Github=t(n,o,s,i)}):"object"==typeof module&&module.exports?module.exports=t(require("es6-promise"),require("base-64"),require("utf8"),require("axios")):e.Github=t(e.Promise,e.base64,e.utf8,e.axios)}(this,function(e,t,n,o){function s(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,u,r,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",u&&"object"==typeof u&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var o in u)u.hasOwnProperty(o)&&(e+="&"+encodeURIComponent(o)+"="+encodeURIComponent(u[o]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:u?u:{},url:c()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+s(e.username+":"+e.password)),o(l).then(function(e){r(null,e.data||!0,e.request)},function(e){304===e.status?r(null,e.data||!0,e.request):r({path:i,request:e.request,error:e.status})})},u=i._requestAllPages=function(e,t){var o=[];!function s(){n("GET",e,null,function(n,i,u){if(n)return t(n);i instanceof Array||(i=[i]),o.push.apply(o,i);var r=(u.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();r?(e=r,s()):t(n,o,u)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),u(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var o="/notifications",s=[];if(e.all&&s.push("all=true"),e.participating&&s.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),s.push("since="+encodeURIComponent(i))}if(e.before){var u=e.before;u.constructor===Date&&(u=u.toISOString()),s.push("before="+encodeURIComponent(u))}e.page&&s.push("page="+encodeURIComponent(e.page)),s.length>0&&(o+="?"+s.join("&")),n("GET",o,null,t)},this.show=function(e,t){var o=e?"/users/"+e:"/user";n("GET",o,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),u(o,n)},this.userStarred=function(e,t){u("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){u("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===l.branch&&l.sha?t(null,l.sha):void c.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,u=e.name,r=e.user,a=e.fullname,c=this;o=a?"/repos/"+a:"/repos/"+r+"/"+u;var l={branch:null,sha:null};this.getRef=function(e,t){n("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){n("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,s){n("DELETE",o+"/git/refs/"+t,e,s)},this.deleteRepo=function(t){n("DELETE",o,e,t)},this.listTags=function(e){n("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var s=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.getPull=function(e,t){n("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,s){n("GET",o+"/compare/"+e+"..."+t,null,s)},this.listBranches=function(e){n("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){n("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,s){n("GET",o+"/git/commits/"+t,null,s)},this.getSha=function(e,t,s){return t&&""!==t?void n("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?s(e):void s(null,t.sha,n)}):c.getRef("heads/"+e,s)},this.getStatuses=function(e,t){n("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:s(e),encoding:"base64"},n("POST",o+"/git/blobs",e,function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.updateTree=function(e,t,s,i){var u={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:s}]};n("POST",o+"/git/trees",u,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,s,u,r){var a=new i.User;a.show(null,function(i,a){if(i)return r(i);var c={message:u,author:{name:e.user,email:a.email},parents:[t],tree:s};n("POST",o+"/git/commits",c,function(e,t,n){return e?r(e):(l.sha=t.sha,void r(null,t.sha,n))})})},this.updateHead=function(e,t,s){n("PATCH",o+"/git/refs/heads/"+e,{sha:t},s)},this.show=function(e){n("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var s=this;n("GET",o+"/stats/contributors",null,function(n,o,i){return n?e(n):void(202===i.status?setTimeout(function(){s.contributors(e,t)},t):e(n,o,i))})},this.contents=function(e,t,s){t=encodeURI(t),n("GET",o+"/contents"+(t?"/"+t:""),{ref:e},s)},this.fork=function(e){n("POST",o+"/forks",null,e)},this.listForks=function(e){n("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){n("POST",o+"/pulls",e,t)},this.listHooks=function(e){n("GET",o+"/hooks",null,e)},this.getHook=function(e,t){n("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",o+"/hooks",e,t)},this.editHook=function(e,t,s){n("PATCH",o+"/hooks/"+e,t,s)},this.deleteHook=function(e,t){n("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,s){n("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,s,!0)},this.remove=function(e,t,s){c.getSha(e,t,function(i,u){return i?s(i):void n("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:u,branch:e},s)})},this["delete"]=this.remove,this.move=function(e,n,o,s){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,u){u.forEach(function(e){e.path===n&&(e.path=o),"tree"===e.type&&delete e.sha}),c.postTree(u,function(t,o){c.commit(i,o,"Deleted "+n,function(t,n){c.updateHead(e,n,s)})})})})},this.write=function(e,t,i,u,r,a){"function"==typeof r&&(a=r,r={}),c.getSha(e,encodeURI(t),function(c,l){var f={message:u,content:"undefined"==typeof r.encode||r.encode?s(i):i,branch:e,committer:r&&r.committer?r.committer:void 0,author:r&&r.author?r.author:void 0};c&&404!==c.error||(f.sha=l),n("PUT",o+"/contents/"+encodeURI(t),f,a)})},this.getCommits=function(e,t){e=e||{};var s=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var u=e.since;u.constructor===Date&&(u=u.toISOString()),i.push("since="+encodeURIComponent(u))}if(e.until){var r=e.until;r.constructor===Date&&(r=r.toISOString()),i.push("until="+encodeURIComponent(r))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.isStarred=function(e,t,o){n("GET","/user/starred/"+e+"/"+t,null,o)},this.star=function(e,t,o){n("PUT","/user/starred/"+e+"/"+t,null,o)},this.unstar=function(e,t,o){n("DELETE","/user/starred/"+e+"/"+t,null,o)},this.createRelease=function(e,t){n("POST",o+"/releases",e,t)},this.editRelease=function(e,t,s){n("PATCH",o+"/releases/"+e,t,s)},this.getRelease=function(e,t){n("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",o+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,o="/gists/"+t;this.read=function(e){n("GET",o,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",o,null,e)},this.fork=function(e){n("POST",o+"/fork",null,e)},this.update=function(e,t){n("PATCH",o,e,t)},this.star=function(e){n("PUT",o+"/star",null,e)},this.unstar=function(e){n("DELETE",o+"/star",null,e)},this.isStarred=function(e){n("GET",o+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,o){n("POST",t,e,o)},this.list=function(e,n){var o=[];for(var s in e)e.hasOwnProperty(s)&&o.push(encodeURIComponent(s)+"="+encodeURIComponent(e[s]));u(t+"?"+o.join("&"),n)},this.comment=function(e,t,o){n("POST",e.comments_url,{body:t},o)},this.edit=function(e,o,s){n("PATCH",t+"/"+e,o,s)},this.get=function(e,o){n("GET",t+"/"+e,null,o)}},i.Search=function(e){var t="/search/",o="?q="+e.query;this.repositories=function(e,s){n("GET",t+"repositories"+o,e,s)},this.code=function(e,s){n("GET",t+"code"+o,e,s)},this.issues=function(e,s){n("GET",t+"issues"+o,e,s)},this.users=function(e,s){n("GET",t+"users"+o,e,s)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i}); +"use strict";!function(e,t){"function"==typeof define&&define.amd?define(["es6-promise","base-64","utf8","axios"],function(n,o,s,i){return e.Github=t(n,o,s,i)}):"object"==typeof module&&module.exports?module.exports=t(require("es6-promise"),require("base-64"),require("utf8"),require("axios")):e.Github=t(e.Promise,e.base64,e.utf8,e.axios)}(this,function(e,t,n,o){function s(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,u,r,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",u&&"object"==typeof u&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var o in u)u.hasOwnProperty(o)&&(e+="&"+encodeURIComponent(o)+"="+encodeURIComponent(u[o]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:u?u:{},url:c()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+s(e.username+":"+e.password)),o(l).then(function(e){r(null,e.data||!0,e.request)},function(e){304===e.status?r(null,e.data||!0,e.request):r({path:i,request:e.request,error:e.status})})},u=i._requestAllPages=function(e,t){var o=[];!function s(){n("GET",e,null,function(n,i,u){if(n)return t(n);i instanceof Array||(i=[i]),o.push.apply(o,i);var r=(u.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();r?(e=r,s()):t(n,o,u)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),u(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var o="/notifications",s=[];if(e.all&&s.push("all=true"),e.participating&&s.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),s.push("since="+encodeURIComponent(i))}if(e.before){var u=e.before;u.constructor===Date&&(u=u.toISOString()),s.push("before="+encodeURIComponent(u))}e.page&&s.push("page="+encodeURIComponent(e.page)),s.length>0&&(o+="?"+s.join("&")),n("GET",o,null,t)},this.show=function(e,t){var o=e?"/users/"+e:"/user";n("GET",o,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),u(o,n)},this.userStarred=function(e,t){u("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){u("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===l.branch&&l.sha?t(null,l.sha):void c.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,u=e.name,r=e.user,a=e.fullname,c=this;o=a?"/repos/"+a:"/repos/"+r+"/"+u;var l={branch:null,sha:null};this.getRef=function(e,t){n("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){n("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,s){n("DELETE",o+"/git/refs/"+t,e,s)},this.deleteRepo=function(t){n("DELETE",o,e,t)},this.listTags=function(e){n("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var s=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.getPull=function(e,t){n("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,s){n("GET",o+"/compare/"+e+"..."+t,null,s)},this.listBranches=function(e){n("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){n("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,s){n("GET",o+"/git/commits/"+t,null,s)},this.getSha=function(e,t,s){return t&&""!==t?void n("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?s(e):void s(null,t.sha,n)}):c.getRef("heads/"+e,s)},this.getStatuses=function(e,t){n("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:s(e),encoding:"base64"},n("POST",o+"/git/blobs",e,function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.updateTree=function(e,t,s,i){var u={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:s}]};n("POST",o+"/git/trees",u,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,s,u,r){var a=new i.User;a.show(null,function(i,a){if(i)return r(i);var c={message:u,author:{name:e.user,email:a.email},parents:[t],tree:s};n("POST",o+"/git/commits",c,function(e,t,n){return e?r(e):(l.sha=t.sha,void r(null,t.sha,n))})})},this.updateHead=function(e,t,s){n("PATCH",o+"/git/refs/heads/"+e,{sha:t},s)},this.show=function(e){n("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var s=this;n("GET",o+"/stats/contributors",null,function(n,o,i){return n?e(n):void(202===i.status?setTimeout(function(){s.contributors(e,t)},t):e(n,o,i))})},this.contents=function(e,t,s){t=encodeURI(t),n("GET",o+"/contents"+(t?"/"+t:""),{ref:e},s)},this.fork=function(e){n("POST",o+"/forks",null,e)},this.listForks=function(e){n("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){n("POST",o+"/pulls",e,t)},this.listHooks=function(e){n("GET",o+"/hooks",null,e)},this.getHook=function(e,t){n("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",o+"/hooks",e,t)},this.editHook=function(e,t,s){n("PATCH",o+"/hooks/"+e,t,s)},this.deleteHook=function(e,t){n("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,s){n("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,s,!0)},this.remove=function(e,t,s){c.getSha(e,t,function(i,u){return i?s(i):void n("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:u,branch:e},s)})},this["delete"]=this.remove,this.move=function(e,n,o,s){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,u){u.forEach(function(e){e.path===n&&(e.path=o),"tree"===e.type&&delete e.sha}),c.postTree(u,function(t,o){c.commit(i,o,"Deleted "+n,function(t,n){c.updateHead(e,n,s)})})})})},this.write=function(e,t,i,u,r,a){"function"==typeof r&&(a=r,r={}),c.getSha(e,encodeURI(t),function(c,l){var f={message:u,content:"undefined"==typeof r.encode||r.encode?s(i):i,branch:e,committer:r&&r.committer?r.committer:void 0,author:r&&r.author?r.author:void 0};c&&404!==c.error||(f.sha=l),n("PUT",o+"/contents/"+encodeURI(t),f,a)})},this.getCommits=function(e,t){e=e||{};var s=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var u=e.since;u.constructor===Date&&(u=u.toISOString()),i.push("since="+encodeURIComponent(u))}if(e.until){var r=e.until;r.constructor===Date&&(r=r.toISOString()),i.push("until="+encodeURIComponent(r))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.isStarred=function(e,t,o){n("GET","/user/starred/"+e+"/"+t,null,o)},this.star=function(e,t,o){n("PUT","/user/starred/"+e+"/"+t,null,o)},this.unstar=function(e,t,o){n("DELETE","/user/starred/"+e+"/"+t,null,o)},this.createRelease=function(e,t){n("POST",o+"/releases",e,t)},this.editRelease=function(e,t,s){n("PATCH",o+"/releases/"+e,t,s)},this.getRelease=function(e,t){n("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",o+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,o="/gists/"+t;this.read=function(e){n("GET",o,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",o,null,e)},this.fork=function(e){n("POST",o+"/fork",null,e)},this.update=function(e,t){n("PATCH",o,e,t)},this.star=function(e){n("PUT",o+"/star",null,e)},this.unstar=function(e){n("DELETE",o+"/star",null,e)},this.isStarred=function(e){n("GET",o+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,o){n("POST",t,e,o)},this.list=function(e,n){var o=[];for(var s in e)e.hasOwnProperty(s)&&o.push(encodeURIComponent(s)+"="+encodeURIComponent(e[s]));u(t+"?"+o.join("&"),n)},this.comment=function(e,t,o){n("POST",e.comments_url,{body:t},o)},this.edit=function(e,o,s){n("PATCH",t+"/"+e,o,s)},this.get=function(e,o){n("GET",t+"/"+e,null,o)}},i.Search=function(e){var t="/search/",o="?q="+e.query;this.repositories=function(e,s){n("GET",t+"repositories"+o,e,s)},this.code=function(e,s){n("GET",t+"code"+o,e,s)},this.issues=function(e,s){n("GET",t+"issues"+o,e,s)},this.users=function(e,s){n("GET",t+"users"+o,e,s)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i}); //# sourceMappingURL=github.min.js.map diff --git a/dist/github.min.js.map b/dist/github.min.js.map index 920d463b..feb92daf 100644 --- a/dist/github.min.js.map +++ b/dist/github.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["github.min.js"],"names":["root","factory","define","amd","Promise","Base64","Utf8","axios","Github","module","exports","require","base64","utf8","this","b64encode","string","encode","polyfill","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","username","password","Authorization","token","then","response","request","status","error","_requestAllPages","results","iterate","err","res","xhr","Array","push","apply","next","getResponseHeader","split","filter","link","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","key","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["github.min.js"],"names":["root","factory","define","amd","Promise","Base64","Utf8","axios","Github","module","exports","require","base64","utf8","this","b64encode","string","encode","polyfill","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","username","password","Authorization","token","then","response","request","status","error","_requestAllPages","results","iterate","err","res","xhr","Array","push","apply","next","getResponseHeader","split","filter","link","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","key","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/src/github.js b/src/github.js index dd4da081..d098bd35 100644 --- a/src/github.js +++ b/src/github.js @@ -317,6 +317,14 @@ }; }; + Github.Organization = function () { + // Create an Organization repo + // ------- + this.createRepo = function (options, cb) { + _request('POST', '/orgs/' + options.orgname + '/repos', options, cb); + }; + }; + // Repository API // ======= @@ -1130,6 +1138,10 @@ return new Github.User(); }; + Github.getOrg = function () { + return new Github.Organization(); + }; + Github.getGist = function (id) { return new Github.Gist({ id: id diff --git a/test/test.org.js b/test/test.org.js new file mode 100644 index 00000000..1c7b1a3a --- /dev/null +++ b/test/test.org.js @@ -0,0 +1,39 @@ +'use strict'; + +var Github = require('../src/github.js'); +var testUser = require('./user.json'); +var github, organization; + +describe('Github.Organization', function() { + before(function() { + github = new Github({ + username: testUser.USERNAME, + password: testUser.PASSWORD, + auth: 'basic' + }); + organization = github.getOrg(); + }); + + it('should create an organisation repo', function(done) { + var repoTest = Math.floor(Math.random() * 100000); + var options = { + orgname: testUser.ORGANIZATION, + name: repoTest, + description: 'test create organization repo', + homepage: 'https://github.com/', + private: false, + has_issues: true, + has_wiki: true, + has_downloads: true + }; + + organization.createRepo(options, function(err, res, xhr) { + should.not.exist(err); + xhr.should.be.instanceof(XMLHttpRequest); + res.name.should.equal(repoTest.toString()); + res.full_name.should.equal(testUser.ORGANIZATION + '/' + repoTest.toString()); + + done(); + }); + }); +}); diff --git a/test/user.json b/test/user.json index 5fdc8e86..33479bef 100644 --- a/test/user.json +++ b/test/user.json @@ -1,5 +1,6 @@ { "USERNAME": "mikedeboertest", "PASSWORD": "test1324", - "REPO": "github" -} \ No newline at end of file + "REPO": "github", + "ORGANIZATION": "github-api-tests" +} From 849e0588978519c80e01ee9704be515956a06d7c Mon Sep 17 00:00:00 2001 From: timwis Date: Fri, 18 Mar 2016 14:12:17 -0400 Subject: [PATCH 002/137] Added repo.collaborators and repo.isCollaborator Closes gh-304 --- README.md | 12 ++++++++++++ dist/github.bundle.min.js | 4 ++-- dist/github.bundle.min.js.map | 2 +- dist/github.min.js | 2 +- dist/github.min.js.map | 2 +- src/github.js | 14 ++++++++++++++ test/test.repo.js | 24 ++++++++++++++++++++++++ 7 files changed, 55 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b957557c..12101c09 100644 --- a/README.md +++ b/README.md @@ -246,6 +246,18 @@ Get contributors list with additions, deletions, and commit counts. repo.contributors(function(err, data) {}); ``` +Get collaborators list. + +```js +repo.collaborators(function(err, data) {}); +``` + +Check if user is a collaborator on the repository. + +```js +repo.isCollaborator(username, function(err) {}); +``` + Check if a repository is starred. ```js diff --git a/dist/github.bundle.min.js b/dist/github.bundle.min.js index 3324f17c..bfa94879 100644 --- a/dist/github.bundle.min.js +++ b/dist/github.bundle.min.js @@ -1,3 +1,3 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Github=e()}}(function(){var e;return function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in p)&&o.responseText?t:n)(o),p=null}},p.onerror=function(){n(new Error("Network Error")),p=null},r.isStandardBrowserEnv()){var m=e("./../helpers/cookies"),g=c.withCredentials||u(c.url)?m.read(c.xsrfCookieName):void 0;g&&(l[c.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(l,function(e,t){"undefined"==typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,e)}),c.withCredentials&&(p.withCredentials=!0),c.responseType)try{p.responseType=c.responseType}catch(v){if("json"!==p.responseType)throw v}r.isArrayBuffer(f)&&(f=new DataView(f)),p.send(f)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(e,t,n){"use strict";function r(e){this.defaults=i.merge({},e),this.interceptors={request:new u,response:new u}}var o=e("./defaults"),i=e("./utils"),s=e("./core/dispatchRequest"),u=e("./core/InterceptorManager"),a=e("./helpers/isAbsoluteURL"),c=e("./helpers/combineURLs"),f=e("./helpers/bind"),l=e("./helpers/transformData");r.prototype.request=function(e){"string"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!a(e.url)&&(e.url=c(e.baseURL,e.url)),e.withCredentials=e.withCredentials||this.defaults.withCredentials,e.data=l(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=[s,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n};var p=new r(o),h=t.exports=f(r.prototype.request,p);h.create=function(e){return new r(e)},h.defaults=p.defaults,h.all=function(e){return Promise.all(e)},h.spread=e("./helpers/spread"),h.interceptors=p.interceptors,i.forEach(["delete","get","head"],function(e){r.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))},h[e]=f(r.prototype[e],p)}),i.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))},h[e]=f(r.prototype[e],p)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(e,t,n){"use strict";function r(){this.handlers=[]}var o=e("./../utils");r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},t.exports=r},{"./../utils":17}],5:[function(e,t,n){(function(n){"use strict";t.exports=function(t){return new Promise(function(r,o){try{var i;"function"==typeof t.adapter?i=t.adapter:"undefined"!=typeof XMLHttpRequest?i=e("../adapters/xhr"):"undefined"!=typeof n&&(i=e("../adapters/http")),"function"==typeof i&&i(r,o,t)}catch(s){o(s)}})}}).call(this,e("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:20}],6:[function(e,t,n){"use strict";var r=e("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};t.exports={transformRequest:[function(e,t){return r.isFormData(e)?e:r.isArrayBuffer(e)?e:r.isArrayBufferView(e)?e.buffer:!r.isObject(e)||r.isFile(e)||r.isBlob(e)?e:(r.isUndefined(t)||(r.forEach(t,function(e,n){"content-type"===n.toLowerCase()&&(t["Content-Type"]=e)}),r.isUndefined(t["Content-Type"])&&(t["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(e))}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(o,"");try{e=JSON.parse(e)}catch(t){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(e,t,n){"use strict";t.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");t=t<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=e("./../utils");t.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(t+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},{"./../utils":17}],10:[function(e,t,n){"use strict";t.exports=function(e,t){return e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"")}},{}],11:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],13:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e){var t,n,o,i={};return e?(r.forEach(e.split("\n"),function(e){o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t&&(i[t]=i[t]?i[t]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],16:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},{"./../utils":17}],17:[function(e,t,n){"use strict";function r(e){return"[object Array]"===y.call(e)}function o(e){return"[object ArrayBuffer]"===y.call(e)}function i(e){return"[object FormData]"===y.call(e)}function s(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function u(e){return"string"==typeof e}function a(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function f(e){return null!==e&&"object"==typeof e}function l(e){return"[object Date]"===y.call(e)}function p(e){return"[object File]"===y.call(e)}function h(e){return"[object Blob]"===y.call(e)}function d(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function m(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function g(e,t){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||r(e)||(e=[e]),r(e))for(var n=0,o=e.length;o>n;n++)t.call(null,e[n],n,e);else for(var i in e)e.hasOwnProperty(i)&&t.call(null,e[i],i,e)}function v(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=v(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;r>n;n++)g(arguments[n],e);return t}var y=Object.prototype.toString;t.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:f,isUndefined:c,isDate:l,isFile:p,isBlob:h,isStandardBrowserEnv:m,forEach:g,merge:v,trim:d}},{}],18:[function(t,n,r){(function(t){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof t&&t;u.global!==u&&u.window!==u||(o=u);var a=function(e){this.message=e};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var c=function(e){throw new a(e)},f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,p=function(e){e=String(e).replace(l,"");var t=e.length;t%4==0&&(e=e.replace(/==?$/,""),t=e.length),(t%4==1||/[^+a-zA-Z0-9\/]/.test(e))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},h=function(e){e=String(e),/[^\0-\xFF]/.test(e)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,r,o,i=e.length%3,s="",u=-1,a=e.length-i;++u>18&63)+f.charAt(o>>12&63)+f.charAt(o>>6&63)+f.charAt(63&o);return 2==i?(t=e.charCodeAt(u)<<8,n=e.charCodeAt(++u),o=t+n,s+=f.charAt(o>>10)+f.charAt(o>>4&63)+f.charAt(o<<2&63)+"="):1==i&&(o=e.charCodeAt(u),s+=f.charAt(o>>2)+f.charAt(o<<4&63)+"=="),s},d={encode:h,decode:p,version:"0.1.0"};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var m in d)d.hasOwnProperty(m)&&(i[m]=d[m]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,n,r){(function(r,o){(function(){"use strict";function i(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){V=e}function a(e){$=e}function c(){return function(){r.nextTick(d)}}function f(){return function(){X(d)}}function l(){var e=0,t=new Q(d),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;Y>e;e+=2){var t=ne[e],n=ne[e+1];t(n),ne[e]=void 0,ne[e+1]=void 0}Y=0}function m(){try{var e=t,n=e("vertx");return X=n.runOnLoop||n.runOnContext,f()}catch(r){return h()}}function g(e,t){var n=this,r=n._state;if(r===se&&!e||r===ue&&!t)return this;var o=new this.constructor(y),i=n._result;if(r){var s=arguments[r-1];$(function(){P(r,o,s,i)})}else O(n,o,e,t);return o}function v(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return C(n,e),n}function y(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(e){try{return e.then}catch(t){return ae.error=t,ae}}function T(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function R(e,t,n){$(function(e){var r=!1,o=T(n,t,function(n){r||(r=!0,t!==n?C(e,n):S(e,n))},function(t){r||(r=!0,U(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,U(e,o))},e)}function _(e,t){t._state===se?S(e,t._result):t._state===ue?U(e,t._result):O(t,void 0,function(t){C(e,t)},function(t){U(e,t)})}function A(e,t,n){t.constructor===e.constructor&&n===re&&constructor.resolve===oe?_(e,t):n===ae?U(e,ae.error):void 0===n?S(e,t):s(n)?R(e,t,n):S(e,t)}function C(e,t){e===t?U(e,w()):i(t)?A(e,t,E(t)):S(e,t)}function x(e){e._onerror&&e._onerror(e._result),j(e)}function S(e,t){e._state===ie&&(e._result=t,e._state=se,0!==e._subscribers.length&&$(j,e))}function U(e,t){e._state===ie&&(e._state=ue,e._result=t,$(x,e))}function O(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+se]=n,o[i+ue]=r,0===i&&e._state&&$(j,e)}function j(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,o,i=e._result,s=0;ss;s++)O(r.resolve(e[s]),void 0,t,n);return o}function q(e){var t=this,n=new t(y);return U(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function B(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&("function"!=typeof e&&H(),this instanceof F?D(this,e):B())}function N(e,t){this._instanceConstructor=e,this.promise=new e(y),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&S(this.promise,this._result))):U(this.promise,this._validationError())}function M(){var e;if("undefined"!=typeof o)e=o;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;n&&"[object Promise]"===Object.prototype.toString.call(n.resolve())&&!n.cast||(e.Promise=de)}var z;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var X,V,J,K=z,Y=0,$=function(e,t){ne[Y]=e,ne[Y+1]=t,Y+=2,2===Y&&(V?V(d):J())},W="undefined"!=typeof window?window:void 0,Z=W||{},Q=Z.MutationObserver||Z.WebKitMutationObserver,ee="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ne=new Array(1e3);J=ee?c():Q?l():te?p():void 0===W&&"function"==typeof t?m():h();var re=g,oe=v,ie=void 0,se=1,ue=2,ae=new I,ce=new I,fe=L,le=k,pe=q,he=0,de=F;F.all=fe,F.race=le,F.resolve=oe,F.reject=pe,F._setScheduler=u,F._setAsap=a,F._asap=$,F.prototype={constructor:F,then:re,"catch":function(e){return this.then(null,e)}};var me=N;N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===ie&&e>n;n++)this._eachEntry(t[n],n)},N.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===oe){var o=E(e);if(o===re&&e._state!==ie)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(n===de){var i=new n(y);A(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new n(function(t){t(e)}),t)}else this._willSettleAt(r(e),t)},N.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===ie&&(this._remaining--,e===ue?U(r,n):this._result[t]=n),0===this._remaining&&S(r,this._result)},N.prototype._willSettleAt=function(e,t){var n=this;O(e,void 0,function(e){n._settledAt(se,t,e)},function(e){n._settledAt(ue,t,e)})};var ge=M,ve={Promise:de,polyfill:ge};"function"==typeof e&&e.amd?e(function(){return ve}):"undefined"!=typeof n&&n.exports?n.exports=ve:"undefined"!=typeof this&&(this.ES6Promise=ve),ge()}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:20}],20:[function(e,t,n){function r(){f=!1,u.length?c=u.concat(c):l=-1,c.length&&o()}function o(){if(!f){var e=setTimeout(r);f=!0;for(var t=c.length;t;){for(u=c,c=[];++l1)for(var n=1;no;)t=e.charCodeAt(o++),t>=55296&&56319>=t&&i>o?(n=e.charCodeAt(o++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--)):r.push(t);return r}function s(e){for(var t,n=e.length,r=-1,o="";++r65535&&(t-=65536,o+=b(t>>>10&1023|55296),t=56320|1023&t),o+=b(t);return o}function u(e){if(e>=55296&&57343>=e)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function a(e,t){return b(e>>t&63|128)}function c(e){if(0==(4294967168&e))return b(e);var t="";return 0==(4294965248&e)?t=b(e>>6&31|192):0==(4294901760&e)?(u(e),t=b(e>>12&15|224),t+=a(e,6)):0==(4292870144&e)&&(t=b(e>>18&7|240),t+=a(e,12),t+=a(e,6)),t+=b(63&e|128)}function f(e){for(var t,n=i(e),r=n.length,o=-1,s="";++o=y)throw Error("Invalid byte index");var e=255&v[w];if(w++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function p(){var e,t,n,r,o;if(w>y)throw Error("Invalid byte index");if(w==y)return!1;if(e=255&v[w],w++,0==(128&e))return e;if(192==(224&e)){var t=l();if(o=(31&e)<<6|t,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if(t=l(),n=l(),o=(15&e)<<12|t<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=l(),n=l(),r=l(),o=(15&e)<<18|t<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function h(e){v=i(e),y=v.length,w=0;for(var t,n=[];(t=p())!==!1;)n.push(t);return s(n)}var d="object"==typeof r&&r,m="object"==typeof n&&n&&n.exports==d&&n,g="object"==typeof t&&t;g.global!==g&&g.window!==g||(o=g);var v,y,w,b=String.fromCharCode,E={version:"2.0.0",encode:f,decode:h};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return E});else if(d&&!d.nodeType)if(m)m.exports=E;else{var T={},R=T.hasOwnProperty;for(var _ in E)R.call(E,_)&&(d[_]=E[_])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(t,n,r){"use strict";!function(r,o){"function"==typeof e&&e.amd?e(["es6-promise","base-64","utf8","axios"],function(e,t,n,i){return r.Github=o(e,t,n,i)}):"object"==typeof n&&n.exports?n.exports=o(t("es6-promise"),t("base-64"),t("utf8"),t("axios")):r.Github=o(r.Promise,r.base64,r.utf8,r.axios)}(this,function(e,t,n,r){function o(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,s,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",s&&"object"==typeof s&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var r in s)s.hasOwnProperty(r)&&(e+="&"+encodeURIComponent(r)+"="+encodeURIComponent(s[r]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var f={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:s?s:{},url:c()};return(e.token||e.username&&e.password)&&(f.headers.Authorization=e.token?"token "+e.token:"Basic "+o(e.username+":"+e.password)),r(f).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},s=i._requestAllPages=function(e,t){var r=[];!function o(){n("GET",e,null,function(n,i,s){if(n)return t(n);i instanceof Array||(i=[i]),r.push.apply(r,i);var u=(s.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,o()):t(n,r,s)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(e.type||"all")),r.push("sort="+encodeURIComponent(e.sort||"updated")),r.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&r.push("page="+encodeURIComponent(e.page)),n+="?"+r.join("&"),s(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var r="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var s=e.before;s.constructor===Date&&(s=s.toISOString()),o.push("before="+encodeURIComponent(s))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(r+="?"+o.join("&")),n("GET",r,null,t)},this.show=function(e,t){var r=e?"/users/"+e:"/user";n("GET",r,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var r="/users/"+e+"/repos",o=[];o.push("type="+encodeURIComponent(t.type||"all")),o.push("sort="+encodeURIComponent(t.sort||"updated")),o.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&o.push("page="+encodeURIComponent(t.page)),r+="?"+o.join("&"),s(r,n)},this.userStarred=function(e,t){s("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){s("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===f.branch&&f.sha?t(null,f.sha):void c.getRef("heads/"+e,function(n,r){f.branch=e,f.sha=r,t(n,r)})}var r,s=e.name,u=e.user,a=e.fullname,c=this;r=a?"/repos/"+a:"/repos/"+u+"/"+s;var f={branch:null,sha:null};this.getRef=function(e,t){n("GET",r+"/git/refs/"+e,null,function(e,n,r){return e?t(e):void t(null,n.object.sha,r)})},this.createRef=function(e,t){n("POST",r+"/git/refs",e,t)},this.deleteRef=function(t,o){n("DELETE",r+"/git/refs/"+t,e,o)},this.deleteRepo=function(t){n("DELETE",r,e,t)},this.listTags=function(e){n("GET",r+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var o=r+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.getPull=function(e,t){n("GET",r+"/pulls/"+e,null,t)},this.compare=function(e,t,o){n("GET",r+"/compare/"+e+"..."+t,null,o)},this.listBranches=function(e){n("GET",r+"/git/refs/heads",null,function(t,n,r){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,r))})},this.getBlob=function(e,t){n("GET",r+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,o){n("GET",r+"/git/commits/"+t,null,o)},this.getSha=function(e,t,o){return t&&""!==t?void n("GET",r+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?o(e):void o(null,t.sha,n)}):c.getRef("heads/"+e,o)},this.getStatuses=function(e,t){n("GET",r+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",r+"/git/trees/"+e,null,function(e,n,r){return e?t(e):void t(null,n.tree,r)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:o(e),encoding:"base64"},n("POST",r+"/git/blobs",e,function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.updateTree=function(e,t,o,i){var s={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:o}]};n("POST",r+"/git/trees",s,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",r+"/git/trees",{tree:e},function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.commit=function(t,o,s,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:s,author:{name:e.user,email:a.email},parents:[t],tree:o};n("POST",r+"/git/commits",c,function(e,t,n){return e?u(e):(f.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,o){n("PATCH",r+"/git/refs/heads/"+e,{sha:t},o)},this.show=function(e){n("GET",r,null,e)},this.contributors=function(e,t){t=t||1e3;var o=this;n("GET",r+"/stats/contributors",null,function(n,r,i){return n?e(n):void(202===i.status?setTimeout(function(){o.contributors(e,t)},t):e(n,r,i))})},this.contents=function(e,t,o){t=encodeURI(t),n("GET",r+"/contents"+(t?"/"+t:""),{ref:e},o)},this.fork=function(e){n("POST",r+"/forks",null,e)},this.listForks=function(e){n("GET",r+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,r){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:r},n)})},this.createPullRequest=function(e,t){n("POST",r+"/pulls",e,t)},this.listHooks=function(e){n("GET",r+"/hooks",null,e)},this.getHook=function(e,t){n("GET",r+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",r+"/hooks",e,t)},this.editHook=function(e,t,o){n("PATCH",r+"/hooks/"+e,t,o)},this.deleteHook=function(e,t){n("DELETE",r+"/hooks/"+e,null,t)},this.read=function(e,t,o){n("GET",r+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,o,!0)},this.remove=function(e,t,o){c.getSha(e,t,function(i,s){return i?o(i):void n("DELETE",r+"/contents/"+t,{message:t+" is removed",sha:s,branch:e},o)})},this["delete"]=this.remove,this.move=function(e,n,r,o){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,s){s.forEach(function(e){e.path===n&&(e.path=r),"tree"===e.type&&delete e.sha}),c.postTree(s,function(t,r){c.commit(i,r,"Deleted "+n,function(t,n){c.updateHead(e,n,o)})})})})},this.write=function(e,t,i,s,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,f){var l={message:s,content:"undefined"==typeof u.encode||u.encode?o(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(l.sha=f),n("PUT",r+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var o=r+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var s=e.since;s.constructor===Date&&(s=s.toISOString()),i.push("since="+encodeURIComponent(s))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.isStarred=function(e,t,r){n("GET","/user/starred/"+e+"/"+t,null,r)},this.star=function(e,t,r){n("PUT","/user/starred/"+e+"/"+t,null,r)},this.unstar=function(e,t,r){n("DELETE","/user/starred/"+e+"/"+t,null,r)},this.createRelease=function(e,t){n("POST",r+"/releases",e,t)},this.editRelease=function(e,t,o){n("PATCH",r+"/releases/"+e,t,o)},this.getRelease=function(e,t){n("GET",r+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",r+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,r="/gists/"+t;this.read=function(e){n("GET",r,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",r,null,e)},this.fork=function(e){n("POST",r+"/fork",null,e)},this.update=function(e,t){n("PATCH",r,e,t)},this.star=function(e){n("PUT",r+"/star",null,e)},this.unstar=function(e){n("DELETE",r+"/star",null,e)},this.isStarred=function(e){n("GET",r+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,r){n("POST",t,e,r)},this.list=function(e,n){var r=[];for(var o in e)e.hasOwnProperty(o)&&r.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));s(t+"?"+r.join("&"),n)},this.comment=function(e,t,r){n("POST",e.comments_url,{body:t},r)},this.edit=function(e,r,o){n("PATCH",t+"/"+e,r,o)},this.get=function(e,r){n("GET",t+"/"+e,null,r)}},i.Search=function(e){var t="/search/",r="?q="+e.query;this.repositories=function(e,o){n("GET",t+"repositories"+r,e,o)},this.code=function(e,o){n("GET",t+"code"+r,e,o)},this.issues=function(e,o){n("GET",t+"issues"+r,e,o)},this.users=function(e,o){n("GET",t+"users"+r,e,o)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e); -}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i})},{axios:1,"base-64":18,"es6-promise":19,utf8:21}]},{},[22])(22)}); +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Github=e()}}(function(){var e;return function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in p)&&o.responseText?t:n)(o),p=null}},p.onerror=function(){n(new Error("Network Error")),p=null},r.isStandardBrowserEnv()){var m=e("./../helpers/cookies"),g=c.withCredentials||u(c.url)?m.read(c.xsrfCookieName):void 0;g&&(l[c.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(l,function(e,t){"undefined"==typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,e)}),c.withCredentials&&(p.withCredentials=!0),c.responseType)try{p.responseType=c.responseType}catch(v){if("json"!==p.responseType)throw v}r.isArrayBuffer(f)&&(f=new DataView(f)),p.send(f)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(e,t,n){"use strict";function r(e){this.defaults=i.merge({},e),this.interceptors={request:new u,response:new u}}var o=e("./defaults"),i=e("./utils"),s=e("./core/dispatchRequest"),u=e("./core/InterceptorManager"),a=e("./helpers/isAbsoluteURL"),c=e("./helpers/combineURLs"),f=e("./helpers/bind"),l=e("./helpers/transformData");r.prototype.request=function(e){"string"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!a(e.url)&&(e.url=c(e.baseURL,e.url)),e.withCredentials=e.withCredentials||this.defaults.withCredentials,e.data=l(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=[s,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n};var p=new r(o),h=t.exports=f(r.prototype.request,p);h.create=function(e){return new r(e)},h.defaults=p.defaults,h.all=function(e){return Promise.all(e)},h.spread=e("./helpers/spread"),h.interceptors=p.interceptors,i.forEach(["delete","get","head"],function(e){r.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))},h[e]=f(r.prototype[e],p)}),i.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))},h[e]=f(r.prototype[e],p)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(e,t,n){"use strict";function r(){this.handlers=[]}var o=e("./../utils");r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},t.exports=r},{"./../utils":17}],5:[function(e,t,n){(function(n){"use strict";t.exports=function(t){return new Promise(function(r,o){try{var i;"function"==typeof t.adapter?i=t.adapter:"undefined"!=typeof XMLHttpRequest?i=e("../adapters/xhr"):"undefined"!=typeof n&&(i=e("../adapters/http")),"function"==typeof i&&i(r,o,t)}catch(s){o(s)}})}}).call(this,e("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:20}],6:[function(e,t,n){"use strict";var r=e("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};t.exports={transformRequest:[function(e,t){return r.isFormData(e)?e:r.isArrayBuffer(e)?e:r.isArrayBufferView(e)?e.buffer:!r.isObject(e)||r.isFile(e)||r.isBlob(e)?e:(r.isUndefined(t)||(r.forEach(t,function(e,n){"content-type"===n.toLowerCase()&&(t["Content-Type"]=e)}),r.isUndefined(t["Content-Type"])&&(t["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(e))}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(o,"");try{e=JSON.parse(e)}catch(t){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(e,t,n){"use strict";t.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");t=t<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=e("./../utils");t.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(t+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},{"./../utils":17}],10:[function(e,t,n){"use strict";t.exports=function(e,t){return e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"")}},{}],11:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],13:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e){var t,n,o,i={};return e?(r.forEach(e.split("\n"),function(e){o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t&&(i[t]=i[t]?i[t]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],16:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},{"./../utils":17}],17:[function(e,t,n){"use strict";function r(e){return"[object Array]"===y.call(e)}function o(e){return"[object ArrayBuffer]"===y.call(e)}function i(e){return"[object FormData]"===y.call(e)}function s(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function u(e){return"string"==typeof e}function a(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function f(e){return null!==e&&"object"==typeof e}function l(e){return"[object Date]"===y.call(e)}function p(e){return"[object File]"===y.call(e)}function h(e){return"[object Blob]"===y.call(e)}function d(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function m(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function g(e,t){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||r(e)||(e=[e]),r(e))for(var n=0,o=e.length;o>n;n++)t.call(null,e[n],n,e);else for(var i in e)e.hasOwnProperty(i)&&t.call(null,e[i],i,e)}function v(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=v(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;r>n;n++)g(arguments[n],e);return t}var y=Object.prototype.toString;t.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:f,isUndefined:c,isDate:l,isFile:p,isBlob:h,isStandardBrowserEnv:m,forEach:g,merge:v,trim:d}},{}],18:[function(t,n,r){(function(t){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof t&&t;(u.global===u||u.window===u)&&(o=u);var a=function(e){this.message=e};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var c=function(e){throw new a(e)},f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,p=function(e){e=String(e).replace(l,"");var t=e.length;t%4==0&&(e=e.replace(/==?$/,""),t=e.length),(t%4==1||/[^+a-zA-Z0-9\/]/.test(e))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},h=function(e){e=String(e),/[^\0-\xFF]/.test(e)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,r,o,i=e.length%3,s="",u=-1,a=e.length-i;++u>18&63)+f.charAt(o>>12&63)+f.charAt(o>>6&63)+f.charAt(63&o);return 2==i?(t=e.charCodeAt(u)<<8,n=e.charCodeAt(++u),o=t+n,s+=f.charAt(o>>10)+f.charAt(o>>4&63)+f.charAt(o<<2&63)+"="):1==i&&(o=e.charCodeAt(u),s+=f.charAt(o>>2)+f.charAt(o<<4&63)+"=="),s},d={encode:h,decode:p,version:"0.1.0"};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var m in d)d.hasOwnProperty(m)&&(i[m]=d[m]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,n,r){(function(r,o){(function(){"use strict";function i(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){V=e}function a(e){$=e}function c(){return function(){r.nextTick(d)}}function f(){return function(){X(d)}}function l(){var e=0,t=new Q(d),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;Y>e;e+=2){var t=ne[e],n=ne[e+1];t(n),ne[e]=void 0,ne[e+1]=void 0}Y=0}function m(){try{var e=t,n=e("vertx");return X=n.runOnLoop||n.runOnContext,f()}catch(r){return h()}}function g(e,t){var n=this,r=n._state;if(r===se&&!e||r===ue&&!t)return this;var o=new this.constructor(y),i=n._result;if(r){var s=arguments[r-1];$(function(){P(r,o,s,i)})}else O(n,o,e,t);return o}function v(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return C(n,e),n}function y(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(e){try{return e.then}catch(t){return ae.error=t,ae}}function T(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function R(e,t,n){$(function(e){var r=!1,o=T(n,t,function(n){r||(r=!0,t!==n?C(e,n):S(e,n))},function(t){r||(r=!0,U(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,U(e,o))},e)}function _(e,t){t._state===se?S(e,t._result):t._state===ue?U(e,t._result):O(t,void 0,function(t){C(e,t)},function(t){U(e,t)})}function A(e,t,n){t.constructor===e.constructor&&n===re&&constructor.resolve===oe?_(e,t):n===ae?U(e,ae.error):void 0===n?S(e,t):s(n)?R(e,t,n):S(e,t)}function C(e,t){e===t?U(e,w()):i(t)?A(e,t,E(t)):S(e,t)}function x(e){e._onerror&&e._onerror(e._result),j(e)}function S(e,t){e._state===ie&&(e._result=t,e._state=se,0!==e._subscribers.length&&$(j,e))}function U(e,t){e._state===ie&&(e._state=ue,e._result=t,$(x,e))}function O(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+se]=n,o[i+ue]=r,0===i&&e._state&&$(j,e)}function j(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,o,i=e._result,s=0;ss;s++)O(r.resolve(e[s]),void 0,t,n);return o}function q(e){var t=this,n=new t(y);return U(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function B(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&("function"!=typeof e&&H(),this instanceof F?D(this,e):B())}function N(e,t){this._instanceConstructor=e,this.promise=new e(y),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&S(this.promise,this._result))):U(this.promise,this._validationError())}function M(){var e;if("undefined"!=typeof o)e=o;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(e.Promise=de)}var z;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var X,V,J,K=z,Y=0,$=function(e,t){ne[Y]=e,ne[Y+1]=t,Y+=2,2===Y&&(V?V(d):J())},W="undefined"!=typeof window?window:void 0,Z=W||{},Q=Z.MutationObserver||Z.WebKitMutationObserver,ee="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ne=new Array(1e3);J=ee?c():Q?l():te?p():void 0===W&&"function"==typeof t?m():h();var re=g,oe=v,ie=void 0,se=1,ue=2,ae=new I,ce=new I,fe=L,le=k,pe=q,he=0,de=F;F.all=fe,F.race=le,F.resolve=oe,F.reject=pe,F._setScheduler=u,F._setAsap=a,F._asap=$,F.prototype={constructor:F,then:re,"catch":function(e){return this.then(null,e)}};var me=N;N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===ie&&e>n;n++)this._eachEntry(t[n],n)},N.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===oe){var o=E(e);if(o===re&&e._state!==ie)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(n===de){var i=new n(y);A(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new n(function(t){t(e)}),t)}else this._willSettleAt(r(e),t)},N.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===ie&&(this._remaining--,e===ue?U(r,n):this._result[t]=n),0===this._remaining&&S(r,this._result)},N.prototype._willSettleAt=function(e,t){var n=this;O(e,void 0,function(e){n._settledAt(se,t,e)},function(e){n._settledAt(ue,t,e)})};var ge=M,ve={Promise:de,polyfill:ge};"function"==typeof e&&e.amd?e(function(){return ve}):"undefined"!=typeof n&&n.exports?n.exports=ve:"undefined"!=typeof this&&(this.ES6Promise=ve),ge()}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:20}],20:[function(e,t,n){function r(){f=!1,u.length?c=u.concat(c):l=-1,c.length&&o()}function o(){if(!f){var e=setTimeout(r);f=!0;for(var t=c.length;t;){for(u=c,c=[];++l1)for(var n=1;no;)t=e.charCodeAt(o++),t>=55296&&56319>=t&&i>o?(n=e.charCodeAt(o++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--)):r.push(t);return r}function s(e){for(var t,n=e.length,r=-1,o="";++r65535&&(t-=65536,o+=b(t>>>10&1023|55296),t=56320|1023&t),o+=b(t);return o}function u(e){if(e>=55296&&57343>=e)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function a(e,t){return b(e>>t&63|128)}function c(e){if(0==(4294967168&e))return b(e);var t="";return 0==(4294965248&e)?t=b(e>>6&31|192):0==(4294901760&e)?(u(e),t=b(e>>12&15|224),t+=a(e,6)):0==(4292870144&e)&&(t=b(e>>18&7|240),t+=a(e,12),t+=a(e,6)),t+=b(63&e|128)}function f(e){for(var t,n=i(e),r=n.length,o=-1,s="";++o=y)throw Error("Invalid byte index");var e=255&v[w];if(w++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function p(){var e,t,n,r,o;if(w>y)throw Error("Invalid byte index");if(w==y)return!1;if(e=255&v[w],w++,0==(128&e))return e;if(192==(224&e)){var t=l();if(o=(31&e)<<6|t,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if(t=l(),n=l(),o=(15&e)<<12|t<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=l(),n=l(),r=l(),o=(15&e)<<18|t<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function h(e){v=i(e),y=v.length,w=0;for(var t,n=[];(t=p())!==!1;)n.push(t);return s(n)}var d="object"==typeof r&&r,m="object"==typeof n&&n&&n.exports==d&&n,g="object"==typeof t&&t;(g.global===g||g.window===g)&&(o=g);var v,y,w,b=String.fromCharCode,E={version:"2.0.0",encode:f,decode:h};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return E});else if(d&&!d.nodeType)if(m)m.exports=E;else{var T={},R=T.hasOwnProperty;for(var _ in E)R.call(E,_)&&(d[_]=E[_])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(t,n,r){"use strict";!function(r,o){"function"==typeof e&&e.amd?e(["es6-promise","base-64","utf8","axios"],function(e,t,n,i){return r.Github=o(e,t,n,i)}):"object"==typeof n&&n.exports?n.exports=o(t("es6-promise"),t("base-64"),t("utf8"),t("axios")):r.Github=o(r.Promise,r.base64,r.utf8,r.axios)}(this,function(e,t,n,r){function o(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,s,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",s&&"object"==typeof s&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var r in s)s.hasOwnProperty(r)&&(e+="&"+encodeURIComponent(r)+"="+encodeURIComponent(s[r]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var f={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:s?s:{},url:c()};return(e.token||e.username&&e.password)&&(f.headers.Authorization=e.token?"token "+e.token:"Basic "+o(e.username+":"+e.password)),r(f).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},s=i._requestAllPages=function(e,t){var r=[];!function o(){n("GET",e,null,function(n,i,s){if(n)return t(n);i instanceof Array||(i=[i]),r.push.apply(r,i);var u=(s.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,o()):t(n,r,s)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(e.type||"all")),r.push("sort="+encodeURIComponent(e.sort||"updated")),r.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&r.push("page="+encodeURIComponent(e.page)),n+="?"+r.join("&"),s(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var r="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var s=e.before;s.constructor===Date&&(s=s.toISOString()),o.push("before="+encodeURIComponent(s))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(r+="?"+o.join("&")),n("GET",r,null,t)},this.show=function(e,t){var r=e?"/users/"+e:"/user";n("GET",r,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var r="/users/"+e+"/repos",o=[];o.push("type="+encodeURIComponent(t.type||"all")),o.push("sort="+encodeURIComponent(t.sort||"updated")),o.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&o.push("page="+encodeURIComponent(t.page)),r+="?"+o.join("&"),s(r,n)},this.userStarred=function(e,t){s("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){s("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===f.branch&&f.sha?t(null,f.sha):void c.getRef("heads/"+e,function(n,r){f.branch=e,f.sha=r,t(n,r)})}var r,s=e.name,u=e.user,a=e.fullname,c=this;r=a?"/repos/"+a:"/repos/"+u+"/"+s;var f={branch:null,sha:null};this.getRef=function(e,t){n("GET",r+"/git/refs/"+e,null,function(e,n,r){return e?t(e):void t(null,n.object.sha,r)})},this.createRef=function(e,t){n("POST",r+"/git/refs",e,t)},this.deleteRef=function(t,o){n("DELETE",r+"/git/refs/"+t,e,o)},this.deleteRepo=function(t){n("DELETE",r,e,t)},this.listTags=function(e){n("GET",r+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var o=r+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.getPull=function(e,t){n("GET",r+"/pulls/"+e,null,t)},this.compare=function(e,t,o){n("GET",r+"/compare/"+e+"..."+t,null,o)},this.listBranches=function(e){n("GET",r+"/git/refs/heads",null,function(t,n,r){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,r))})},this.getBlob=function(e,t){n("GET",r+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,o){n("GET",r+"/git/commits/"+t,null,o)},this.getSha=function(e,t,o){return t&&""!==t?void n("GET",r+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?o(e):void o(null,t.sha,n)}):c.getRef("heads/"+e,o)},this.getStatuses=function(e,t){n("GET",r+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",r+"/git/trees/"+e,null,function(e,n,r){return e?t(e):void t(null,n.tree,r)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:o(e),encoding:"base64"},n("POST",r+"/git/blobs",e,function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.updateTree=function(e,t,o,i){var s={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:o}]};n("POST",r+"/git/trees",s,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",r+"/git/trees",{tree:e},function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.commit=function(t,o,s,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:s,author:{name:e.user,email:a.email},parents:[t],tree:o};n("POST",r+"/git/commits",c,function(e,t,n){return e?u(e):(f.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,o){n("PATCH",r+"/git/refs/heads/"+e,{sha:t},o)},this.show=function(e){n("GET",r,null,e)},this.contributors=function(e,t){t=t||1e3;var o=this;n("GET",r+"/stats/contributors",null,function(n,r,i){return n?e(n):void(202===i.status?setTimeout(function(){o.contributors(e,t)},t):e(n,r,i))})},this.collaborators=function(e){n("GET",r+"/collaborators",null,e)},this.isCollaborator=function(e,t){n("GET",r+"/collaborators/"+e,null,t)},this.contents=function(e,t,o){t=encodeURI(t),n("GET",r+"/contents"+(t?"/"+t:""),{ref:e},o)},this.fork=function(e){n("POST",r+"/forks",null,e)},this.listForks=function(e){n("GET",r+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,r){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:r},n)})},this.createPullRequest=function(e,t){n("POST",r+"/pulls",e,t)},this.listHooks=function(e){n("GET",r+"/hooks",null,e)},this.getHook=function(e,t){n("GET",r+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",r+"/hooks",e,t)},this.editHook=function(e,t,o){n("PATCH",r+"/hooks/"+e,t,o)},this.deleteHook=function(e,t){n("DELETE",r+"/hooks/"+e,null,t)},this.read=function(e,t,o){n("GET",r+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,o,!0)},this.remove=function(e,t,o){c.getSha(e,t,function(i,s){return i?o(i):void n("DELETE",r+"/contents/"+t,{message:t+" is removed",sha:s,branch:e},o)})},this["delete"]=this.remove,this.move=function(e,n,r,o){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,s){s.forEach(function(e){e.path===n&&(e.path=r),"tree"===e.type&&delete e.sha}),c.postTree(s,function(t,r){c.commit(i,r,"Deleted "+n,function(t,n){c.updateHead(e,n,o)})})})})},this.write=function(e,t,i,s,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,f){var l={message:s,content:"undefined"==typeof u.encode||u.encode?o(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(l.sha=f),n("PUT",r+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var o=r+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var s=e.since;s.constructor===Date&&(s=s.toISOString()),i.push("since="+encodeURIComponent(s))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.isStarred=function(e,t,r){n("GET","/user/starred/"+e+"/"+t,null,r)},this.star=function(e,t,r){n("PUT","/user/starred/"+e+"/"+t,null,r)},this.unstar=function(e,t,r){n("DELETE","/user/starred/"+e+"/"+t,null,r)},this.createRelease=function(e,t){n("POST",r+"/releases",e,t)},this.editRelease=function(e,t,o){n("PATCH",r+"/releases/"+e,t,o)},this.getRelease=function(e,t){n("GET",r+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",r+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,r="/gists/"+t;this.read=function(e){n("GET",r,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",r,null,e)},this.fork=function(e){n("POST",r+"/fork",null,e)},this.update=function(e,t){n("PATCH",r,e,t)},this.star=function(e){n("PUT",r+"/star",null,e)},this.unstar=function(e){n("DELETE",r+"/star",null,e)},this.isStarred=function(e){n("GET",r+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,r){n("POST",t,e,r)},this.list=function(e,n){var r=[];for(var o in e)e.hasOwnProperty(o)&&r.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));s(t+"?"+r.join("&"),n)},this.comment=function(e,t,r){n("POST",e.comments_url,{body:t},r)},this.edit=function(e,r,o){n("PATCH",t+"/"+e,r,o)},this.get=function(e,r){n("GET",t+"/"+e,null,r)}},i.Search=function(e){var t="/search/",r="?q="+e.query;this.repositories=function(e,o){n("GET",t+"repositories"+r,e,o)},this.code=function(e,o){n("GET",t+"code"+r,e,o)},this.issues=function(e,o){n("GET",t+"issues"+r,e,o); +},this.users=function(e,o){n("GET",t+"users"+r,e,o)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i})},{axios:1,"base-64":18,"es6-promise":19,utf8:21}]},{},[22])(22)}); //# sourceMappingURL=github.bundle.min.js.map diff --git a/dist/github.bundle.min.js.map b/dist/github.bundle.min.js.map index 9914cbb4..8064cd34 100644 --- a/dist/github.bundle.min.js.map +++ b/dist/github.bundle.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"lib$es6$promise$utils$$objectOrFunction","x","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","parent","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","object","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","TypeError","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",20,"cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","clearTimeout","Item","fun","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",21,"ucs2decode","string","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","codePoint","createByte","encodeCodePoint","symbol","utf8encode","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","tmp","utf8",22,"factory","Base64","Utf8","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","param","getTime","token","_requestAllPages","results","iterate","err","res","xhr","next","getResponseHeader","filter","link","exec","pop","User","repos","type","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","list","query","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":20}],6:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n\n},{}],8:[function(require,module,exports){\n'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n\n},{}],9:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n\n},{}],11:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n\n},{}],13:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n\n},{}],16:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":20}],20:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],21:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],22:[function(require,module,exports){\n/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n\n},{\"axios\":1,\"base-64\":18,\"es6-promise\":19,\"utf8\":21}]},{},[22])(22)\n});\n\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\nvar buildURL = require('./../helpers/buildURL');\r\nvar parseHeaders = require('./../helpers/parseHeaders');\r\nvar transformData = require('./../helpers/transformData');\r\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\r\nvar btoa = window.btoa || require('./../helpers/btoa');\r\n\r\nmodule.exports = function xhrAdapter(resolve, reject, config) {\r\n var requestData = config.data;\r\n var requestHeaders = config.headers;\r\n\r\n if (utils.isFormData(requestData)) {\r\n delete requestHeaders['Content-Type']; // Let the browser set it\r\n }\r\n\r\n var request = new XMLHttpRequest();\r\n\r\n // For IE 8/9 CORS support\r\n // Only supports POST and GET calls and doesn't returns the response headers.\r\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\r\n request = new window.XDomainRequest();\r\n }\r\n\r\n // HTTP basic authentication\r\n if (config.auth) {\r\n var username = config.auth.username || '';\r\n var password = config.auth.password || '';\r\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\r\n }\r\n\r\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\r\n\r\n // Set the request timeout in MS\r\n request.timeout = config.timeout;\r\n\r\n // Listen for ready state\r\n request.onload = function handleLoad() {\r\n if (!request) {\r\n return;\r\n }\r\n // Prepare the response\r\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\r\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\r\n var response = {\r\n data: transformData(\r\n responseData,\r\n responseHeaders,\r\n config.transformResponse\r\n ),\r\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\r\n status: request.status === 1223 ? 204 : request.status,\r\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\r\n headers: responseHeaders,\r\n config: config,\r\n request: request\r\n };\r\n\r\n // Resolve or reject the Promise based on the status\r\n ((response.status >= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n","'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n","'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n","'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n","'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n","'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n","'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n","'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"lib$es6$promise$utils$$objectOrFunction","x","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","parent","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","object","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","TypeError","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",20,"cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","clearTimeout","Item","fun","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",21,"ucs2decode","string","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","codePoint","createByte","encodeCodePoint","symbol","utf8encode","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","tmp","utf8",22,"factory","Base64","Utf8","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","param","getTime","token","_requestAllPages","results","iterate","err","res","xhr","next","getResponseHeader","filter","link","exec","pop","User","repos","type","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","collaborators","isCollaborator","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","list","query","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":20}],6:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n\n},{}],8:[function(require,module,exports){\n'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n\n},{}],9:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n\n},{}],11:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n\n},{}],13:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n\n},{}],16:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":20}],20:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],21:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],22:[function(require,module,exports){\n/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Show repository collaborators\r\n // -------\r\n\r\n this.collaborators = function (cb) {\r\n _request('GET', repoPath + '/collaborators', null, cb);\r\n };\r\n\r\n // Check whether user is a collaborator on the repository\r\n // -------\r\n\r\n this.isCollaborator = function (username, cb) {\r\n _request('GET', repoPath + '/collaborators/' + username, null, cb);\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n\n},{\"axios\":1,\"base-64\":18,\"es6-promise\":19,\"utf8\":21}]},{},[22])(22)\n});\n\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\nvar buildURL = require('./../helpers/buildURL');\r\nvar parseHeaders = require('./../helpers/parseHeaders');\r\nvar transformData = require('./../helpers/transformData');\r\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\r\nvar btoa = window.btoa || require('./../helpers/btoa');\r\n\r\nmodule.exports = function xhrAdapter(resolve, reject, config) {\r\n var requestData = config.data;\r\n var requestHeaders = config.headers;\r\n\r\n if (utils.isFormData(requestData)) {\r\n delete requestHeaders['Content-Type']; // Let the browser set it\r\n }\r\n\r\n var request = new XMLHttpRequest();\r\n\r\n // For IE 8/9 CORS support\r\n // Only supports POST and GET calls and doesn't returns the response headers.\r\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\r\n request = new window.XDomainRequest();\r\n }\r\n\r\n // HTTP basic authentication\r\n if (config.auth) {\r\n var username = config.auth.username || '';\r\n var password = config.auth.password || '';\r\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\r\n }\r\n\r\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\r\n\r\n // Set the request timeout in MS\r\n request.timeout = config.timeout;\r\n\r\n // Listen for ready state\r\n request.onload = function handleLoad() {\r\n if (!request) {\r\n return;\r\n }\r\n // Prepare the response\r\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\r\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\r\n var response = {\r\n data: transformData(\r\n responseData,\r\n responseHeaders,\r\n config.transformResponse\r\n ),\r\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\r\n status: request.status === 1223 ? 204 : request.status,\r\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\r\n headers: responseHeaders,\r\n config: config,\r\n request: request\r\n };\r\n\r\n // Resolve or reject the Promise based on the status\r\n ((response.status >= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n","'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n","'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n","'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n","'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n","'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n","'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n","'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Show repository collaborators\r\n // -------\r\n\r\n this.collaborators = function (cb) {\r\n _request('GET', repoPath + '/collaborators', null, cb);\r\n };\r\n\r\n // Check whether user is a collaborator on the repository\r\n // -------\r\n\r\n this.isCollaborator = function (username, cb) {\r\n _request('GET', repoPath + '/collaborators/' + username, null, cb);\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.min.js b/dist/github.min.js index bb12d87c..300e78a4 100644 --- a/dist/github.min.js +++ b/dist/github.min.js @@ -1,2 +1,2 @@ -"use strict";!function(e,t){"function"==typeof define&&define.amd?define(["es6-promise","base-64","utf8","axios"],function(n,o,s,i){return e.Github=t(n,o,s,i)}):"object"==typeof module&&module.exports?module.exports=t(require("es6-promise"),require("base-64"),require("utf8"),require("axios")):e.Github=t(e.Promise,e.base64,e.utf8,e.axios)}(this,function(e,t,n,o){function s(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,u,r,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",u&&"object"==typeof u&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var o in u)u.hasOwnProperty(o)&&(e+="&"+encodeURIComponent(o)+"="+encodeURIComponent(u[o]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:u?u:{},url:c()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+s(e.username+":"+e.password)),o(l).then(function(e){r(null,e.data||!0,e.request)},function(e){304===e.status?r(null,e.data||!0,e.request):r({path:i,request:e.request,error:e.status})})},u=i._requestAllPages=function(e,t){var o=[];!function s(){n("GET",e,null,function(n,i,u){if(n)return t(n);i instanceof Array||(i=[i]),o.push.apply(o,i);var r=(u.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();r?(e=r,s()):t(n,o,u)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),u(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var o="/notifications",s=[];if(e.all&&s.push("all=true"),e.participating&&s.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),s.push("since="+encodeURIComponent(i))}if(e.before){var u=e.before;u.constructor===Date&&(u=u.toISOString()),s.push("before="+encodeURIComponent(u))}e.page&&s.push("page="+encodeURIComponent(e.page)),s.length>0&&(o+="?"+s.join("&")),n("GET",o,null,t)},this.show=function(e,t){var o=e?"/users/"+e:"/user";n("GET",o,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),u(o,n)},this.userStarred=function(e,t){u("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){u("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===l.branch&&l.sha?t(null,l.sha):void c.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,u=e.name,r=e.user,a=e.fullname,c=this;o=a?"/repos/"+a:"/repos/"+r+"/"+u;var l={branch:null,sha:null};this.getRef=function(e,t){n("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){n("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,s){n("DELETE",o+"/git/refs/"+t,e,s)},this.deleteRepo=function(t){n("DELETE",o,e,t)},this.listTags=function(e){n("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var s=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.getPull=function(e,t){n("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,s){n("GET",o+"/compare/"+e+"..."+t,null,s)},this.listBranches=function(e){n("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){n("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,s){n("GET",o+"/git/commits/"+t,null,s)},this.getSha=function(e,t,s){return t&&""!==t?void n("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?s(e):void s(null,t.sha,n)}):c.getRef("heads/"+e,s)},this.getStatuses=function(e,t){n("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:s(e),encoding:"base64"},n("POST",o+"/git/blobs",e,function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.updateTree=function(e,t,s,i){var u={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:s}]};n("POST",o+"/git/trees",u,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,s,u,r){var a=new i.User;a.show(null,function(i,a){if(i)return r(i);var c={message:u,author:{name:e.user,email:a.email},parents:[t],tree:s};n("POST",o+"/git/commits",c,function(e,t,n){return e?r(e):(l.sha=t.sha,void r(null,t.sha,n))})})},this.updateHead=function(e,t,s){n("PATCH",o+"/git/refs/heads/"+e,{sha:t},s)},this.show=function(e){n("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var s=this;n("GET",o+"/stats/contributors",null,function(n,o,i){return n?e(n):void(202===i.status?setTimeout(function(){s.contributors(e,t)},t):e(n,o,i))})},this.contents=function(e,t,s){t=encodeURI(t),n("GET",o+"/contents"+(t?"/"+t:""),{ref:e},s)},this.fork=function(e){n("POST",o+"/forks",null,e)},this.listForks=function(e){n("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){n("POST",o+"/pulls",e,t)},this.listHooks=function(e){n("GET",o+"/hooks",null,e)},this.getHook=function(e,t){n("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",o+"/hooks",e,t)},this.editHook=function(e,t,s){n("PATCH",o+"/hooks/"+e,t,s)},this.deleteHook=function(e,t){n("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,s){n("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,s,!0)},this.remove=function(e,t,s){c.getSha(e,t,function(i,u){return i?s(i):void n("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:u,branch:e},s)})},this["delete"]=this.remove,this.move=function(e,n,o,s){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,u){u.forEach(function(e){e.path===n&&(e.path=o),"tree"===e.type&&delete e.sha}),c.postTree(u,function(t,o){c.commit(i,o,"Deleted "+n,function(t,n){c.updateHead(e,n,s)})})})})},this.write=function(e,t,i,u,r,a){"function"==typeof r&&(a=r,r={}),c.getSha(e,encodeURI(t),function(c,l){var f={message:u,content:"undefined"==typeof r.encode||r.encode?s(i):i,branch:e,committer:r&&r.committer?r.committer:void 0,author:r&&r.author?r.author:void 0};c&&404!==c.error||(f.sha=l),n("PUT",o+"/contents/"+encodeURI(t),f,a)})},this.getCommits=function(e,t){e=e||{};var s=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var u=e.since;u.constructor===Date&&(u=u.toISOString()),i.push("since="+encodeURIComponent(u))}if(e.until){var r=e.until;r.constructor===Date&&(r=r.toISOString()),i.push("until="+encodeURIComponent(r))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.isStarred=function(e,t,o){n("GET","/user/starred/"+e+"/"+t,null,o)},this.star=function(e,t,o){n("PUT","/user/starred/"+e+"/"+t,null,o)},this.unstar=function(e,t,o){n("DELETE","/user/starred/"+e+"/"+t,null,o)},this.createRelease=function(e,t){n("POST",o+"/releases",e,t)},this.editRelease=function(e,t,s){n("PATCH",o+"/releases/"+e,t,s)},this.getRelease=function(e,t){n("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",o+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,o="/gists/"+t;this.read=function(e){n("GET",o,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",o,null,e)},this.fork=function(e){n("POST",o+"/fork",null,e)},this.update=function(e,t){n("PATCH",o,e,t)},this.star=function(e){n("PUT",o+"/star",null,e)},this.unstar=function(e){n("DELETE",o+"/star",null,e)},this.isStarred=function(e){n("GET",o+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,o){n("POST",t,e,o)},this.list=function(e,n){var o=[];for(var s in e)e.hasOwnProperty(s)&&o.push(encodeURIComponent(s)+"="+encodeURIComponent(e[s]));u(t+"?"+o.join("&"),n)},this.comment=function(e,t,o){n("POST",e.comments_url,{body:t},o)},this.edit=function(e,o,s){n("PATCH",t+"/"+e,o,s)},this.get=function(e,o){n("GET",t+"/"+e,null,o)}},i.Search=function(e){var t="/search/",o="?q="+e.query;this.repositories=function(e,s){n("GET",t+"repositories"+o,e,s)},this.code=function(e,s){n("GET",t+"code"+o,e,s)},this.issues=function(e,s){n("GET",t+"issues"+o,e,s)},this.users=function(e,s){n("GET",t+"users"+o,e,s)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i}); +"use strict";!function(e,t){"function"==typeof define&&define.amd?define(["es6-promise","base-64","utf8","axios"],function(n,o,s,i){return e.Github=t(n,o,s,i)}):"object"==typeof module&&module.exports?module.exports=t(require("es6-promise"),require("base-64"),require("utf8"),require("axios")):e.Github=t(e.Promise,e.base64,e.utf8,e.axios)}(this,function(e,t,n,o){function s(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,r,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",r&&"object"==typeof r&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var o in r)r.hasOwnProperty(o)&&(e+="&"+encodeURIComponent(o)+"="+encodeURIComponent(r[o]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:r?r:{},url:c()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+s(e.username+":"+e.password)),o(l).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},r=i._requestAllPages=function(e,t){var o=[];!function s(){n("GET",e,null,function(n,i,r){if(n)return t(n);i instanceof Array||(i=[i]),o.push.apply(o,i);var u=(r.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,s()):t(n,o,r)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),r(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var o="/notifications",s=[];if(e.all&&s.push("all=true"),e.participating&&s.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),s.push("since="+encodeURIComponent(i))}if(e.before){var r=e.before;r.constructor===Date&&(r=r.toISOString()),s.push("before="+encodeURIComponent(r))}e.page&&s.push("page="+encodeURIComponent(e.page)),s.length>0&&(o+="?"+s.join("&")),n("GET",o,null,t)},this.show=function(e,t){var o=e?"/users/"+e:"/user";n("GET",o,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),r(o,n)},this.userStarred=function(e,t){r("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){r("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===l.branch&&l.sha?t(null,l.sha):void c.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,r=e.name,u=e.user,a=e.fullname,c=this;o=a?"/repos/"+a:"/repos/"+u+"/"+r;var l={branch:null,sha:null};this.getRef=function(e,t){n("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){n("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,s){n("DELETE",o+"/git/refs/"+t,e,s)},this.deleteRepo=function(t){n("DELETE",o,e,t)},this.listTags=function(e){n("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var s=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.getPull=function(e,t){n("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,s){n("GET",o+"/compare/"+e+"..."+t,null,s)},this.listBranches=function(e){n("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){n("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,s){n("GET",o+"/git/commits/"+t,null,s)},this.getSha=function(e,t,s){return t&&""!==t?void n("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?s(e):void s(null,t.sha,n)}):c.getRef("heads/"+e,s)},this.getStatuses=function(e,t){n("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:s(e),encoding:"base64"},n("POST",o+"/git/blobs",e,function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.updateTree=function(e,t,s,i){var r={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:s}]};n("POST",o+"/git/trees",r,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,s,r,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:r,author:{name:e.user,email:a.email},parents:[t],tree:s};n("POST",o+"/git/commits",c,function(e,t,n){return e?u(e):(l.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,s){n("PATCH",o+"/git/refs/heads/"+e,{sha:t},s)},this.show=function(e){n("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var s=this;n("GET",o+"/stats/contributors",null,function(n,o,i){return n?e(n):void(202===i.status?setTimeout(function(){s.contributors(e,t)},t):e(n,o,i))})},this.collaborators=function(e){n("GET",o+"/collaborators",null,e)},this.isCollaborator=function(e,t){n("GET",o+"/collaborators/"+e,null,t)},this.contents=function(e,t,s){t=encodeURI(t),n("GET",o+"/contents"+(t?"/"+t:""),{ref:e},s)},this.fork=function(e){n("POST",o+"/forks",null,e)},this.listForks=function(e){n("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){n("POST",o+"/pulls",e,t)},this.listHooks=function(e){n("GET",o+"/hooks",null,e)},this.getHook=function(e,t){n("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",o+"/hooks",e,t)},this.editHook=function(e,t,s){n("PATCH",o+"/hooks/"+e,t,s)},this.deleteHook=function(e,t){n("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,s){n("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,s,!0)},this.remove=function(e,t,s){c.getSha(e,t,function(i,r){return i?s(i):void n("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:r,branch:e},s)})},this["delete"]=this.remove,this.move=function(e,n,o,s){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,r){r.forEach(function(e){e.path===n&&(e.path=o),"tree"===e.type&&delete e.sha}),c.postTree(r,function(t,o){c.commit(i,o,"Deleted "+n,function(t,n){c.updateHead(e,n,s)})})})})},this.write=function(e,t,i,r,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,l){var f={message:r,content:"undefined"==typeof u.encode||u.encode?s(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(f.sha=l),n("PUT",o+"/contents/"+encodeURI(t),f,a)})},this.getCommits=function(e,t){e=e||{};var s=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var r=e.since;r.constructor===Date&&(r=r.toISOString()),i.push("since="+encodeURIComponent(r))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.isStarred=function(e,t,o){n("GET","/user/starred/"+e+"/"+t,null,o)},this.star=function(e,t,o){n("PUT","/user/starred/"+e+"/"+t,null,o)},this.unstar=function(e,t,o){n("DELETE","/user/starred/"+e+"/"+t,null,o)},this.createRelease=function(e,t){n("POST",o+"/releases",e,t)},this.editRelease=function(e,t,s){n("PATCH",o+"/releases/"+e,t,s)},this.getRelease=function(e,t){n("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",o+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,o="/gists/"+t;this.read=function(e){n("GET",o,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",o,null,e)},this.fork=function(e){n("POST",o+"/fork",null,e)},this.update=function(e,t){n("PATCH",o,e,t)},this.star=function(e){n("PUT",o+"/star",null,e)},this.unstar=function(e){n("DELETE",o+"/star",null,e)},this.isStarred=function(e){n("GET",o+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,o){n("POST",t,e,o)},this.list=function(e,n){var o=[];for(var s in e)e.hasOwnProperty(s)&&o.push(encodeURIComponent(s)+"="+encodeURIComponent(e[s]));r(t+"?"+o.join("&"),n)},this.comment=function(e,t,o){n("POST",e.comments_url,{body:t},o)},this.edit=function(e,o,s){n("PATCH",t+"/"+e,o,s)},this.get=function(e,o){n("GET",t+"/"+e,null,o)}},i.Search=function(e){var t="/search/",o="?q="+e.query;this.repositories=function(e,s){n("GET",t+"repositories"+o,e,s)},this.code=function(e,s){n("GET",t+"code"+o,e,s)},this.issues=function(e,s){n("GET",t+"issues"+o,e,s)},this.users=function(e,s){n("GET",t+"users"+o,e,s)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i}); //# sourceMappingURL=github.min.js.map diff --git a/dist/github.min.js.map b/dist/github.min.js.map index feb92daf..2fa295f5 100644 --- a/dist/github.min.js.map +++ b/dist/github.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["github.min.js"],"names":["root","factory","define","amd","Promise","Base64","Utf8","axios","Github","module","exports","require","base64","utf8","this","b64encode","string","encode","polyfill","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","username","password","Authorization","token","then","response","request","status","error","_requestAllPages","results","iterate","err","res","xhr","Array","push","apply","next","getResponseHeader","split","filter","link","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","key","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["github.min.js"],"names":["root","factory","define","amd","Promise","Base64","Utf8","axios","Github","module","exports","require","base64","utf8","this","b64encode","string","encode","polyfill","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","username","password","Authorization","token","then","response","request","status","error","_requestAllPages","results","iterate","err","res","xhr","Array","push","apply","next","getResponseHeader","split","filter","link","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","collaborators","isCollaborator","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","key","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Show repository collaborators\r\n // -------\r\n\r\n this.collaborators = function (cb) {\r\n _request('GET', repoPath + '/collaborators', null, cb);\r\n };\r\n\r\n // Check whether user is a collaborator on the repository\r\n // -------\r\n\r\n this.isCollaborator = function (username, cb) {\r\n _request('GET', repoPath + '/collaborators/' + username, null, cb);\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/src/github.js b/src/github.js index d098bd35..6fdd370e 100644 --- a/src/github.js +++ b/src/github.js @@ -685,6 +685,20 @@ }); }; + // Show repository collaborators + // ------- + + this.collaborators = function (cb) { + _request('GET', repoPath + '/collaborators', null, cb); + }; + + // Check whether user is a collaborator on the repository + // ------- + + this.isCollaborator = function (username, cb) { + _request('GET', repoPath + '/collaborators/' + username, null, cb); + }; + // Get contents // -------- diff --git a/test/test.repo.js b/test/test.repo.js index 16a72982..dc99f85d 100644 --- a/test/test.repo.js +++ b/test/test.repo.js @@ -276,6 +276,30 @@ describe('Creating new Github.Repository', function() { }); }); + it('should show repo collaborators', function(done) { + repo.collaborators(function(err, res, xhr) { + should.not.exist(err); + xhr.should.be.instanceof(XMLHttpRequest); + res.should.be.instanceof(Array); + res.should.have.length(1); + res[0].login.should.equal(testUser.USERNAME); + should.exist(res[0].id); + should.exist(res[0].permissions); + + done(); + }); + }); + + it('should test whether user is collaborator', function(done) { + repo.isCollaborator(testUser.USERNAME, function(err, res, xhr) { + should.not.exist(err); + xhr.should.be.instanceof(XMLHttpRequest); + xhr.status.should.equal(204); + + done(); + }); + }); + it('should write to repo', function(done) { repo.write('master', 'TEST.md', 'THIS IS A TEST', 'Creating test', function(err) { should.not.exist(err); From 826d982ee6c90510ab456df765799f1ef194c0c6 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Sun, 21 Feb 2016 11:45:11 -0600 Subject: [PATCH 003/137] Use Babel's UMD wrapper * Will work the same as the current UMD wrapper after Babel 6.6.0 --- .babelrc | 10 + .gitignore | 5 +- dist/github.bundle.min.js | 3 - dist/github.bundle.min.js.map | 1 - dist/github.min.js | 2 - dist/github.min.js.map | 1 - gulpfile.js | 26 +- karma.conf.js | 75 -- package.json | 4 + src/github.js | 1742 ++++++++++++++++----------------- 10 files changed, 903 insertions(+), 966 deletions(-) create mode 100644 .babelrc delete mode 100644 dist/github.bundle.min.js delete mode 100644 dist/github.bundle.min.js.map delete mode 100644 dist/github.min.js delete mode 100644 dist/github.min.js.map delete mode 100644 karma.conf.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..cb4b32ad --- /dev/null +++ b/.babelrc @@ -0,0 +1,10 @@ +{ + "presets": ["es2015"], + "plugins": [ + ["transform-es2015-modules-umd", { + "globals": { + "es6-promise": "Promise" + } + }] + ] +} diff --git a/.gitignore b/.gitignore index 8bcfe81d..1aacec2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .DS_Store .idea node_modules/ -npm-debug.log coverage/ +dist/*.js +dist/*.map + +npm-debug.log sauce.json diff --git a/dist/github.bundle.min.js b/dist/github.bundle.min.js deleted file mode 100644 index bfa94879..00000000 --- a/dist/github.bundle.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Github=e()}}(function(){var e;return function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in p)&&o.responseText?t:n)(o),p=null}},p.onerror=function(){n(new Error("Network Error")),p=null},r.isStandardBrowserEnv()){var m=e("./../helpers/cookies"),g=c.withCredentials||u(c.url)?m.read(c.xsrfCookieName):void 0;g&&(l[c.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(l,function(e,t){"undefined"==typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,e)}),c.withCredentials&&(p.withCredentials=!0),c.responseType)try{p.responseType=c.responseType}catch(v){if("json"!==p.responseType)throw v}r.isArrayBuffer(f)&&(f=new DataView(f)),p.send(f)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(e,t,n){"use strict";function r(e){this.defaults=i.merge({},e),this.interceptors={request:new u,response:new u}}var o=e("./defaults"),i=e("./utils"),s=e("./core/dispatchRequest"),u=e("./core/InterceptorManager"),a=e("./helpers/isAbsoluteURL"),c=e("./helpers/combineURLs"),f=e("./helpers/bind"),l=e("./helpers/transformData");r.prototype.request=function(e){"string"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!a(e.url)&&(e.url=c(e.baseURL,e.url)),e.withCredentials=e.withCredentials||this.defaults.withCredentials,e.data=l(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=[s,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n};var p=new r(o),h=t.exports=f(r.prototype.request,p);h.create=function(e){return new r(e)},h.defaults=p.defaults,h.all=function(e){return Promise.all(e)},h.spread=e("./helpers/spread"),h.interceptors=p.interceptors,i.forEach(["delete","get","head"],function(e){r.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))},h[e]=f(r.prototype[e],p)}),i.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))},h[e]=f(r.prototype[e],p)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(e,t,n){"use strict";function r(){this.handlers=[]}var o=e("./../utils");r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},t.exports=r},{"./../utils":17}],5:[function(e,t,n){(function(n){"use strict";t.exports=function(t){return new Promise(function(r,o){try{var i;"function"==typeof t.adapter?i=t.adapter:"undefined"!=typeof XMLHttpRequest?i=e("../adapters/xhr"):"undefined"!=typeof n&&(i=e("../adapters/http")),"function"==typeof i&&i(r,o,t)}catch(s){o(s)}})}}).call(this,e("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:20}],6:[function(e,t,n){"use strict";var r=e("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};t.exports={transformRequest:[function(e,t){return r.isFormData(e)?e:r.isArrayBuffer(e)?e:r.isArrayBufferView(e)?e.buffer:!r.isObject(e)||r.isFile(e)||r.isBlob(e)?e:(r.isUndefined(t)||(r.forEach(t,function(e,n){"content-type"===n.toLowerCase()&&(t["Content-Type"]=e)}),r.isUndefined(t["Content-Type"])&&(t["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(e))}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(o,"");try{e=JSON.parse(e)}catch(t){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(e,t,n){"use strict";t.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");t=t<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=e("./../utils");t.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(t+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},{"./../utils":17}],10:[function(e,t,n){"use strict";t.exports=function(e,t){return e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"")}},{}],11:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],13:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e){var t,n,o,i={};return e?(r.forEach(e.split("\n"),function(e){o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t&&(i[t]=i[t]?i[t]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],16:[function(e,t,n){"use strict";var r=e("./../utils");t.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},{"./../utils":17}],17:[function(e,t,n){"use strict";function r(e){return"[object Array]"===y.call(e)}function o(e){return"[object ArrayBuffer]"===y.call(e)}function i(e){return"[object FormData]"===y.call(e)}function s(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function u(e){return"string"==typeof e}function a(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function f(e){return null!==e&&"object"==typeof e}function l(e){return"[object Date]"===y.call(e)}function p(e){return"[object File]"===y.call(e)}function h(e){return"[object Blob]"===y.call(e)}function d(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function m(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function g(e,t){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||r(e)||(e=[e]),r(e))for(var n=0,o=e.length;o>n;n++)t.call(null,e[n],n,e);else for(var i in e)e.hasOwnProperty(i)&&t.call(null,e[i],i,e)}function v(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=v(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;r>n;n++)g(arguments[n],e);return t}var y=Object.prototype.toString;t.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:f,isUndefined:c,isDate:l,isFile:p,isBlob:h,isStandardBrowserEnv:m,forEach:g,merge:v,trim:d}},{}],18:[function(t,n,r){(function(t){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof t&&t;(u.global===u||u.window===u)&&(o=u);var a=function(e){this.message=e};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var c=function(e){throw new a(e)},f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,p=function(e){e=String(e).replace(l,"");var t=e.length;t%4==0&&(e=e.replace(/==?$/,""),t=e.length),(t%4==1||/[^+a-zA-Z0-9\/]/.test(e))&&c("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},h=function(e){e=String(e),/[^\0-\xFF]/.test(e)&&c("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,r,o,i=e.length%3,s="",u=-1,a=e.length-i;++u>18&63)+f.charAt(o>>12&63)+f.charAt(o>>6&63)+f.charAt(63&o);return 2==i?(t=e.charCodeAt(u)<<8,n=e.charCodeAt(++u),o=t+n,s+=f.charAt(o>>10)+f.charAt(o>>4&63)+f.charAt(o<<2&63)+"="):1==i&&(o=e.charCodeAt(u),s+=f.charAt(o>>2)+f.charAt(o<<4&63)+"=="),s},d={encode:h,decode:p,version:"0.1.0"};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var m in d)d.hasOwnProperty(m)&&(i[m]=d[m]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,n,r){(function(r,o){(function(){"use strict";function i(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){V=e}function a(e){$=e}function c(){return function(){r.nextTick(d)}}function f(){return function(){X(d)}}function l(){var e=0,t=new Q(d),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;Y>e;e+=2){var t=ne[e],n=ne[e+1];t(n),ne[e]=void 0,ne[e+1]=void 0}Y=0}function m(){try{var e=t,n=e("vertx");return X=n.runOnLoop||n.runOnContext,f()}catch(r){return h()}}function g(e,t){var n=this,r=n._state;if(r===se&&!e||r===ue&&!t)return this;var o=new this.constructor(y),i=n._result;if(r){var s=arguments[r-1];$(function(){P(r,o,s,i)})}else O(n,o,e,t);return o}function v(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return C(n,e),n}function y(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(e){try{return e.then}catch(t){return ae.error=t,ae}}function T(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function R(e,t,n){$(function(e){var r=!1,o=T(n,t,function(n){r||(r=!0,t!==n?C(e,n):S(e,n))},function(t){r||(r=!0,U(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,U(e,o))},e)}function _(e,t){t._state===se?S(e,t._result):t._state===ue?U(e,t._result):O(t,void 0,function(t){C(e,t)},function(t){U(e,t)})}function A(e,t,n){t.constructor===e.constructor&&n===re&&constructor.resolve===oe?_(e,t):n===ae?U(e,ae.error):void 0===n?S(e,t):s(n)?R(e,t,n):S(e,t)}function C(e,t){e===t?U(e,w()):i(t)?A(e,t,E(t)):S(e,t)}function x(e){e._onerror&&e._onerror(e._result),j(e)}function S(e,t){e._state===ie&&(e._result=t,e._state=se,0!==e._subscribers.length&&$(j,e))}function U(e,t){e._state===ie&&(e._state=ue,e._result=t,$(x,e))}function O(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+se]=n,o[i+ue]=r,0===i&&e._state&&$(j,e)}function j(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,o,i=e._result,s=0;ss;s++)O(r.resolve(e[s]),void 0,t,n);return o}function q(e){var t=this,n=new t(y);return U(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function B(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&("function"!=typeof e&&H(),this instanceof F?D(this,e):B())}function N(e,t){this._instanceConstructor=e,this.promise=new e(y),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&S(this.promise,this._result))):U(this.promise,this._validationError())}function M(){var e;if("undefined"!=typeof o)e=o;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(e.Promise=de)}var z;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var X,V,J,K=z,Y=0,$=function(e,t){ne[Y]=e,ne[Y+1]=t,Y+=2,2===Y&&(V?V(d):J())},W="undefined"!=typeof window?window:void 0,Z=W||{},Q=Z.MutationObserver||Z.WebKitMutationObserver,ee="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ne=new Array(1e3);J=ee?c():Q?l():te?p():void 0===W&&"function"==typeof t?m():h();var re=g,oe=v,ie=void 0,se=1,ue=2,ae=new I,ce=new I,fe=L,le=k,pe=q,he=0,de=F;F.all=fe,F.race=le,F.resolve=oe,F.reject=pe,F._setScheduler=u,F._setAsap=a,F._asap=$,F.prototype={constructor:F,then:re,"catch":function(e){return this.then(null,e)}};var me=N;N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===ie&&e>n;n++)this._eachEntry(t[n],n)},N.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===oe){var o=E(e);if(o===re&&e._state!==ie)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(n===de){var i=new n(y);A(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new n(function(t){t(e)}),t)}else this._willSettleAt(r(e),t)},N.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===ie&&(this._remaining--,e===ue?U(r,n):this._result[t]=n),0===this._remaining&&S(r,this._result)},N.prototype._willSettleAt=function(e,t){var n=this;O(e,void 0,function(e){n._settledAt(se,t,e)},function(e){n._settledAt(ue,t,e)})};var ge=M,ve={Promise:de,polyfill:ge};"function"==typeof e&&e.amd?e(function(){return ve}):"undefined"!=typeof n&&n.exports?n.exports=ve:"undefined"!=typeof this&&(this.ES6Promise=ve),ge()}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:20}],20:[function(e,t,n){function r(){f=!1,u.length?c=u.concat(c):l=-1,c.length&&o()}function o(){if(!f){var e=setTimeout(r);f=!0;for(var t=c.length;t;){for(u=c,c=[];++l1)for(var n=1;no;)t=e.charCodeAt(o++),t>=55296&&56319>=t&&i>o?(n=e.charCodeAt(o++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--)):r.push(t);return r}function s(e){for(var t,n=e.length,r=-1,o="";++r65535&&(t-=65536,o+=b(t>>>10&1023|55296),t=56320|1023&t),o+=b(t);return o}function u(e){if(e>=55296&&57343>=e)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function a(e,t){return b(e>>t&63|128)}function c(e){if(0==(4294967168&e))return b(e);var t="";return 0==(4294965248&e)?t=b(e>>6&31|192):0==(4294901760&e)?(u(e),t=b(e>>12&15|224),t+=a(e,6)):0==(4292870144&e)&&(t=b(e>>18&7|240),t+=a(e,12),t+=a(e,6)),t+=b(63&e|128)}function f(e){for(var t,n=i(e),r=n.length,o=-1,s="";++o=y)throw Error("Invalid byte index");var e=255&v[w];if(w++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function p(){var e,t,n,r,o;if(w>y)throw Error("Invalid byte index");if(w==y)return!1;if(e=255&v[w],w++,0==(128&e))return e;if(192==(224&e)){var t=l();if(o=(31&e)<<6|t,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if(t=l(),n=l(),o=(15&e)<<12|t<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=l(),n=l(),r=l(),o=(15&e)<<18|t<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function h(e){v=i(e),y=v.length,w=0;for(var t,n=[];(t=p())!==!1;)n.push(t);return s(n)}var d="object"==typeof r&&r,m="object"==typeof n&&n&&n.exports==d&&n,g="object"==typeof t&&t;(g.global===g||g.window===g)&&(o=g);var v,y,w,b=String.fromCharCode,E={version:"2.0.0",encode:f,decode:h};if("function"==typeof e&&"object"==typeof e.amd&&e.amd)e(function(){return E});else if(d&&!d.nodeType)if(m)m.exports=E;else{var T={},R=T.hasOwnProperty;for(var _ in E)R.call(E,_)&&(d[_]=E[_])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(t,n,r){"use strict";!function(r,o){"function"==typeof e&&e.amd?e(["es6-promise","base-64","utf8","axios"],function(e,t,n,i){return r.Github=o(e,t,n,i)}):"object"==typeof n&&n.exports?n.exports=o(t("es6-promise"),t("base-64"),t("utf8"),t("axios")):r.Github=o(r.Promise,r.base64,r.utf8,r.axios)}(this,function(e,t,n,r){function o(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,s,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",s&&"object"==typeof s&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var r in s)s.hasOwnProperty(r)&&(e+="&"+encodeURIComponent(r)+"="+encodeURIComponent(s[r]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var f={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:s?s:{},url:c()};return(e.token||e.username&&e.password)&&(f.headers.Authorization=e.token?"token "+e.token:"Basic "+o(e.username+":"+e.password)),r(f).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},s=i._requestAllPages=function(e,t){var r=[];!function o(){n("GET",e,null,function(n,i,s){if(n)return t(n);i instanceof Array||(i=[i]),r.push.apply(r,i);var u=(s.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,o()):t(n,r,s)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(e.type||"all")),r.push("sort="+encodeURIComponent(e.sort||"updated")),r.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&r.push("page="+encodeURIComponent(e.page)),n+="?"+r.join("&"),s(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var r="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var s=e.before;s.constructor===Date&&(s=s.toISOString()),o.push("before="+encodeURIComponent(s))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(r+="?"+o.join("&")),n("GET",r,null,t)},this.show=function(e,t){var r=e?"/users/"+e:"/user";n("GET",r,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var r="/users/"+e+"/repos",o=[];o.push("type="+encodeURIComponent(t.type||"all")),o.push("sort="+encodeURIComponent(t.sort||"updated")),o.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&o.push("page="+encodeURIComponent(t.page)),r+="?"+o.join("&"),s(r,n)},this.userStarred=function(e,t){s("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){s("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===f.branch&&f.sha?t(null,f.sha):void c.getRef("heads/"+e,function(n,r){f.branch=e,f.sha=r,t(n,r)})}var r,s=e.name,u=e.user,a=e.fullname,c=this;r=a?"/repos/"+a:"/repos/"+u+"/"+s;var f={branch:null,sha:null};this.getRef=function(e,t){n("GET",r+"/git/refs/"+e,null,function(e,n,r){return e?t(e):void t(null,n.object.sha,r)})},this.createRef=function(e,t){n("POST",r+"/git/refs",e,t)},this.deleteRef=function(t,o){n("DELETE",r+"/git/refs/"+t,e,o)},this.deleteRepo=function(t){n("DELETE",r,e,t)},this.listTags=function(e){n("GET",r+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var o=r+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.getPull=function(e,t){n("GET",r+"/pulls/"+e,null,t)},this.compare=function(e,t,o){n("GET",r+"/compare/"+e+"..."+t,null,o)},this.listBranches=function(e){n("GET",r+"/git/refs/heads",null,function(t,n,r){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,r))})},this.getBlob=function(e,t){n("GET",r+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,o){n("GET",r+"/git/commits/"+t,null,o)},this.getSha=function(e,t,o){return t&&""!==t?void n("GET",r+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?o(e):void o(null,t.sha,n)}):c.getRef("heads/"+e,o)},this.getStatuses=function(e,t){n("GET",r+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",r+"/git/trees/"+e,null,function(e,n,r){return e?t(e):void t(null,n.tree,r)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:o(e),encoding:"base64"},n("POST",r+"/git/blobs",e,function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.updateTree=function(e,t,o,i){var s={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:o}]};n("POST",r+"/git/trees",s,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",r+"/git/trees",{tree:e},function(e,n,r){return e?t(e):void t(null,n.sha,r)})},this.commit=function(t,o,s,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:s,author:{name:e.user,email:a.email},parents:[t],tree:o};n("POST",r+"/git/commits",c,function(e,t,n){return e?u(e):(f.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,o){n("PATCH",r+"/git/refs/heads/"+e,{sha:t},o)},this.show=function(e){n("GET",r,null,e)},this.contributors=function(e,t){t=t||1e3;var o=this;n("GET",r+"/stats/contributors",null,function(n,r,i){return n?e(n):void(202===i.status?setTimeout(function(){o.contributors(e,t)},t):e(n,r,i))})},this.collaborators=function(e){n("GET",r+"/collaborators",null,e)},this.isCollaborator=function(e,t){n("GET",r+"/collaborators/"+e,null,t)},this.contents=function(e,t,o){t=encodeURI(t),n("GET",r+"/contents"+(t?"/"+t:""),{ref:e},o)},this.fork=function(e){n("POST",r+"/forks",null,e)},this.listForks=function(e){n("GET",r+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,r){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:r},n)})},this.createPullRequest=function(e,t){n("POST",r+"/pulls",e,t)},this.listHooks=function(e){n("GET",r+"/hooks",null,e)},this.getHook=function(e,t){n("GET",r+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",r+"/hooks",e,t)},this.editHook=function(e,t,o){n("PATCH",r+"/hooks/"+e,t,o)},this.deleteHook=function(e,t){n("DELETE",r+"/hooks/"+e,null,t)},this.read=function(e,t,o){n("GET",r+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,o,!0)},this.remove=function(e,t,o){c.getSha(e,t,function(i,s){return i?o(i):void n("DELETE",r+"/contents/"+t,{message:t+" is removed",sha:s,branch:e},o)})},this["delete"]=this.remove,this.move=function(e,n,r,o){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,s){s.forEach(function(e){e.path===n&&(e.path=r),"tree"===e.type&&delete e.sha}),c.postTree(s,function(t,r){c.commit(i,r,"Deleted "+n,function(t,n){c.updateHead(e,n,o)})})})})},this.write=function(e,t,i,s,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,f){var l={message:s,content:"undefined"==typeof u.encode||u.encode?o(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(l.sha=f),n("PUT",r+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var o=r+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var s=e.since;s.constructor===Date&&(s=s.toISOString()),i.push("since="+encodeURIComponent(s))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(o+="?"+i.join("&")),n("GET",o,null,t)},this.isStarred=function(e,t,r){n("GET","/user/starred/"+e+"/"+t,null,r)},this.star=function(e,t,r){n("PUT","/user/starred/"+e+"/"+t,null,r)},this.unstar=function(e,t,r){n("DELETE","/user/starred/"+e+"/"+t,null,r)},this.createRelease=function(e,t){n("POST",r+"/releases",e,t)},this.editRelease=function(e,t,o){n("PATCH",r+"/releases/"+e,t,o)},this.getRelease=function(e,t){n("GET",r+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",r+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,r="/gists/"+t;this.read=function(e){n("GET",r,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",r,null,e)},this.fork=function(e){n("POST",r+"/fork",null,e)},this.update=function(e,t){n("PATCH",r,e,t)},this.star=function(e){n("PUT",r+"/star",null,e)},this.unstar=function(e){n("DELETE",r+"/star",null,e)},this.isStarred=function(e){n("GET",r+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,r){n("POST",t,e,r)},this.list=function(e,n){var r=[];for(var o in e)e.hasOwnProperty(o)&&r.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));s(t+"?"+r.join("&"),n)},this.comment=function(e,t,r){n("POST",e.comments_url,{body:t},r)},this.edit=function(e,r,o){n("PATCH",t+"/"+e,r,o)},this.get=function(e,r){n("GET",t+"/"+e,null,r)}},i.Search=function(e){var t="/search/",r="?q="+e.query;this.repositories=function(e,o){n("GET",t+"repositories"+r,e,o)},this.code=function(e,o){n("GET",t+"code"+r,e,o)},this.issues=function(e,o){n("GET",t+"issues"+r,e,o); -},this.users=function(e,o){n("GET",t+"users"+r,e,o)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i})},{axios:1,"base-64":18,"es6-promise":19,utf8:21}]},{},[22])(22)}); -//# sourceMappingURL=github.bundle.min.js.map diff --git a/dist/github.bundle.min.js.map b/dist/github.bundle.min.js.map deleted file mode 100644 index 8064cd34..00000000 --- a/dist/github.bundle.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"lib$es6$promise$utils$$objectOrFunction","x","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","parent","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","object","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","TypeError","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",20,"cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","clearTimeout","Item","fun","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",21,"ucs2decode","string","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","codePoint","createByte","encodeCodePoint","symbol","utf8encode","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","tmp","utf8",22,"factory","Base64","Utf8","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","param","getTime","token","_requestAllPages","results","iterate","err","res","xhr","next","getResponseHeader","filter","link","exec","pop","User","repos","type","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","collaborators","isCollaborator","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","list","query","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":20}],6:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n\n},{}],8:[function(require,module,exports){\n'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n\n},{}],9:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n\n},{}],11:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n\n},{}],13:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n\n},{}],16:[function(require,module,exports){\n'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":20}],20:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],21:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],22:[function(require,module,exports){\n/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Show repository collaborators\r\n // -------\r\n\r\n this.collaborators = function (cb) {\r\n _request('GET', repoPath + '/collaborators', null, cb);\r\n };\r\n\r\n // Check whether user is a collaborator on the repository\r\n // -------\r\n\r\n this.isCollaborator = function (username, cb) {\r\n _request('GET', repoPath + '/collaborators/' + username, null, cb);\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n\n},{\"axios\":1,\"base-64\":18,\"es6-promise\":19,\"utf8\":21}]},{},[22])(22)\n});\n\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\nvar buildURL = require('./../helpers/buildURL');\r\nvar parseHeaders = require('./../helpers/parseHeaders');\r\nvar transformData = require('./../helpers/transformData');\r\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\r\nvar btoa = window.btoa || require('./../helpers/btoa');\r\n\r\nmodule.exports = function xhrAdapter(resolve, reject, config) {\r\n var requestData = config.data;\r\n var requestHeaders = config.headers;\r\n\r\n if (utils.isFormData(requestData)) {\r\n delete requestHeaders['Content-Type']; // Let the browser set it\r\n }\r\n\r\n var request = new XMLHttpRequest();\r\n\r\n // For IE 8/9 CORS support\r\n // Only supports POST and GET calls and doesn't returns the response headers.\r\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\r\n request = new window.XDomainRequest();\r\n }\r\n\r\n // HTTP basic authentication\r\n if (config.auth) {\r\n var username = config.auth.username || '';\r\n var password = config.auth.password || '';\r\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\r\n }\r\n\r\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\r\n\r\n // Set the request timeout in MS\r\n request.timeout = config.timeout;\r\n\r\n // Listen for ready state\r\n request.onload = function handleLoad() {\r\n if (!request) {\r\n return;\r\n }\r\n // Prepare the response\r\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\r\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\r\n var response = {\r\n data: transformData(\r\n responseData,\r\n responseHeaders,\r\n config.transformResponse\r\n ),\r\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\r\n status: request.status === 1223 ? 204 : request.status,\r\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\r\n headers: responseHeaders,\r\n config: config,\r\n request: request\r\n };\r\n\r\n // Resolve or reject the Promise based on the status\r\n ((response.status >= 200 && response.status < 300) ||\r\n (!('status' in request) && response.responseText) ?\r\n resolve :\r\n reject)(response);\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Handle low level network errors\r\n request.onerror = function handleError() {\r\n // Real errors are hidden from us by the browser\r\n // onerror should only fire if it's a network error\r\n reject(new Error('Network Error'));\r\n\r\n // Clean up request\r\n request = null;\r\n };\r\n\r\n // Add xsrf header\r\n // This is only done if running in a standard browser environment.\r\n // Specifically not if we're in a web worker, or react-native.\r\n if (utils.isStandardBrowserEnv()) {\r\n var cookies = require('./../helpers/cookies');\r\n\r\n // Add xsrf header\r\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\r\n cookies.read(config.xsrfCookieName) :\r\n undefined;\r\n\r\n if (xsrfValue) {\r\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\r\n }\r\n }\r\n\r\n // Add headers to the request\r\n if ('setRequestHeader' in request) {\r\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\r\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\r\n // Remove Content-Type if data is undefined\r\n delete requestHeaders[key];\r\n } else {\r\n // Otherwise add header to the request\r\n request.setRequestHeader(key, val);\r\n }\r\n });\r\n }\r\n\r\n // Add withCredentials to request if needed\r\n if (config.withCredentials) {\r\n request.withCredentials = true;\r\n }\r\n\r\n // Add responseType to request if needed\r\n if (config.responseType) {\r\n try {\r\n request.responseType = config.responseType;\r\n } catch (e) {\r\n if (request.responseType !== 'json') {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n if (utils.isArrayBuffer(requestData)) {\r\n requestData = new DataView(requestData);\r\n }\r\n\r\n // Send the request\r\n request.send(requestData);\r\n};\r\n","'use strict';\r\n\r\nvar defaults = require('./defaults');\r\nvar utils = require('./utils');\r\nvar dispatchRequest = require('./core/dispatchRequest');\r\nvar InterceptorManager = require('./core/InterceptorManager');\r\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\r\nvar combineURLs = require('./helpers/combineURLs');\r\nvar bind = require('./helpers/bind');\r\nvar transformData = require('./helpers/transformData');\r\n\r\nfunction Axios(defaultConfig) {\r\n this.defaults = utils.merge({}, defaultConfig);\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n };\r\n}\r\n\r\nAxios.prototype.request = function request(config) {\r\n /*eslint no-param-reassign:0*/\r\n // Allow for axios('example/url'[, config]) a la fetch API\r\n if (typeof config === 'string') {\r\n config = utils.merge({\r\n url: arguments[0]\r\n }, arguments[1]);\r\n }\r\n\r\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\r\n\r\n // Support baseURL config\r\n if (config.baseURL && !isAbsoluteURL(config.url)) {\r\n config.url = combineURLs(config.baseURL, config.url);\r\n }\r\n\r\n // Don't allow overriding defaults.withCredentials\r\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\r\n\r\n // Transform request data\r\n config.data = transformData(\r\n config.data,\r\n config.headers,\r\n config.transformRequest\r\n );\r\n\r\n // Flatten headers\r\n config.headers = utils.merge(\r\n config.headers.common || {},\r\n config.headers[config.method] || {},\r\n config.headers || {}\r\n );\r\n\r\n utils.forEach(\r\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\r\n function cleanHeaderConfig(method) {\r\n delete config.headers[method];\r\n }\r\n );\r\n\r\n // Hook up interceptors middleware\r\n var chain = [dispatchRequest, undefined];\r\n var promise = Promise.resolve(config);\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected);\r\n });\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift());\r\n }\r\n\r\n return promise;\r\n};\r\n\r\nvar defaultInstance = new Axios(defaults);\r\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\r\n\r\naxios.create = function create(defaultConfig) {\r\n return new Axios(defaultConfig);\r\n};\r\n\r\n// Expose defaults\r\naxios.defaults = defaultInstance.defaults;\r\n\r\n// Expose all/spread\r\naxios.all = function all(promises) {\r\n return Promise.all(promises);\r\n};\r\naxios.spread = require('./helpers/spread');\r\n\r\n// Expose interceptors\r\naxios.interceptors = defaultInstance.interceptors;\r\n\r\n// Provide aliases for supported request methods\r\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n\r\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\r\n /*eslint func-names:0*/\r\n Axios.prototype[method] = function(url, data, config) {\r\n return this.request(utils.merge(config || {}, {\r\n method: method,\r\n url: url,\r\n data: data\r\n }));\r\n };\r\n axios[method] = bind(Axios.prototype[method], defaultInstance);\r\n});\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = [];\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n });\r\n return this.handlers.length - 1;\r\n};\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null;\r\n }\r\n};\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n utils.forEach(this.handlers, function forEachHandler(h) {\r\n if (h !== null) {\r\n fn(h);\r\n }\r\n });\r\n};\r\n\r\nmodule.exports = InterceptorManager;\r\n","'use strict';\r\n\r\n/**\r\n * Dispatch a request to the server using whichever adapter\r\n * is supported by the current environment.\r\n *\r\n * @param {object} config The config that is to be used for the request\r\n * @returns {Promise} The Promise to be fulfilled\r\n */\r\nmodule.exports = function dispatchRequest(config) {\r\n return new Promise(function executor(resolve, reject) {\r\n try {\r\n var adapter;\r\n\r\n if (typeof config.adapter === 'function') {\r\n // For custom adapter support\r\n adapter = config.adapter;\r\n } else if (typeof XMLHttpRequest !== 'undefined') {\r\n // For browsers use XHR adapter\r\n adapter = require('../adapters/xhr');\r\n } else if (typeof process !== 'undefined') {\r\n // For node use HTTP adapter\r\n adapter = require('../adapters/http');\r\n }\r\n\r\n if (typeof adapter === 'function') {\r\n adapter(resolve, reject, config);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};\r\n\r\n","'use strict';\r\n\r\nvar utils = require('./utils');\r\n\r\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\r\nvar DEFAULT_CONTENT_TYPE = {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n};\r\n\r\nmodule.exports = {\r\n transformRequest: [function transformResponseJSON(data, headers) {\r\n if (utils.isFormData(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (utils.isArrayBufferView(data)) {\r\n return data.buffer;\r\n }\r\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\r\n // Set application/json if no Content-Type has been specified\r\n if (!utils.isUndefined(headers)) {\r\n utils.forEach(headers, function processContentTypeHeader(val, key) {\r\n if (key.toLowerCase() === 'content-type') {\r\n headers['Content-Type'] = val;\r\n }\r\n });\r\n\r\n if (utils.isUndefined(headers['Content-Type'])) {\r\n headers['Content-Type'] = 'application/json;charset=utf-8';\r\n }\r\n }\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n }],\r\n\r\n transformResponse: [function transformResponseJSON(data) {\r\n /*eslint no-param-reassign:0*/\r\n if (typeof data === 'string') {\r\n data = data.replace(PROTECTION_PREFIX, '');\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) { /* Ignore */ }\r\n }\r\n return data;\r\n }],\r\n\r\n headers: {\r\n common: {\r\n 'Accept': 'application/json, text/plain, */*'\r\n },\r\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\r\n post: utils.merge(DEFAULT_CONTENT_TYPE),\r\n put: utils.merge(DEFAULT_CONTENT_TYPE)\r\n },\r\n\r\n timeout: 0,\r\n\r\n xsrfCookieName: 'XSRF-TOKEN',\r\n xsrfHeaderName: 'X-XSRF-TOKEN'\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function bind(fn, thisArg) {\r\n return function wrap() {\r\n var args = new Array(arguments.length);\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i];\r\n }\r\n return fn.apply(thisArg, args);\r\n };\r\n};\r\n","'use strict';\r\n\r\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\r\n\r\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\nfunction InvalidCharacterError(message) {\r\n this.message = message;\r\n}\r\nInvalidCharacterError.prototype = new Error;\r\nInvalidCharacterError.prototype.code = 5;\r\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\r\n\r\nfunction btoa(input) {\r\n var str = String(input);\r\n var output = '';\r\n for (\r\n // initialize result and counter\r\n var block, charCode, idx = 0, map = chars;\r\n // if the next str index does not exist:\r\n // change the mapping table to \"=\"\r\n // check if d has no fractional digits\r\n str.charAt(idx | 0) || (map = '=', idx % 1);\r\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\r\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\r\n ) {\r\n charCode = str.charCodeAt(idx += 3 / 4);\r\n if (charCode > 0xFF) {\r\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n}\r\n\r\nmodule.exports = btoa;\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).\r\n replace(/%40/gi, '@').\r\n replace(/%3A/gi, ':').\r\n replace(/%24/g, '$').\r\n replace(/%2C/gi, ',').\r\n replace(/%20/g, '+').\r\n replace(/%5B/gi, '[').\r\n replace(/%5D/gi, ']');\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nmodule.exports = function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url;\r\n }\r\n\r\n var serializedParams;\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params);\r\n } else {\r\n var parts = [];\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return;\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]';\r\n }\r\n\r\n if (!utils.isArray(val)) {\r\n val = [val];\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString();\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v);\r\n }\r\n parts.push(encode(key) + '=' + encode(v));\r\n });\r\n });\r\n\r\n serializedParams = parts.join('&');\r\n }\r\n\r\n if (serializedParams) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\r\n }\r\n\r\n return url;\r\n};\r\n\r\n","'use strict';\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nmodule.exports = function combineURLs(baseURL, relativeURL) {\r\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs support document.cookie\r\n (function standardBrowserEnv() {\r\n return {\r\n write: function write(name, value, expires, path, domain, secure) {\r\n var cookie = [];\r\n cookie.push(name + '=' + encodeURIComponent(value));\r\n\r\n if (utils.isNumber(expires)) {\r\n cookie.push('expires=' + new Date(expires).toGMTString());\r\n }\r\n\r\n if (utils.isString(path)) {\r\n cookie.push('path=' + path);\r\n }\r\n\r\n if (utils.isString(domain)) {\r\n cookie.push('domain=' + domain);\r\n }\r\n\r\n if (secure === true) {\r\n cookie.push('secure');\r\n }\r\n\r\n document.cookie = cookie.join('; ');\r\n },\r\n\r\n read: function read(name) {\r\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\r\n return (match ? decodeURIComponent(match[3]) : null);\r\n },\r\n\r\n remove: function remove(name) {\r\n this.write(name, '', Date.now() - 86400000);\r\n }\r\n };\r\n })() :\r\n\r\n // Non standard browser env (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return {\r\n write: function write() {},\r\n read: function read() { return null; },\r\n remove: function remove() {}\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nmodule.exports = function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\nmodule.exports = (\r\n utils.isStandardBrowserEnv() ?\r\n\r\n // Standard browser envs have full support of the APIs needed to test\r\n // whether the request URL is of the same origin as current location.\r\n (function standardBrowserEnv() {\r\n var msie = /(msie|trident)/i.test(navigator.userAgent);\r\n var urlParsingNode = document.createElement('a');\r\n var originURL;\r\n\r\n /**\r\n * Parse a URL to discover it's components\r\n *\r\n * @param {String} url The URL to be parsed\r\n * @returns {Object}\r\n */\r\n function resolveURL(url) {\r\n var href = url;\r\n\r\n if (msie) {\r\n // IE needs attribute set twice to normalize properties\r\n urlParsingNode.setAttribute('href', href);\r\n href = urlParsingNode.href;\r\n }\r\n\r\n urlParsingNode.setAttribute('href', href);\r\n\r\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\r\n return {\r\n href: urlParsingNode.href,\r\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\r\n host: urlParsingNode.host,\r\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\r\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\r\n hostname: urlParsingNode.hostname,\r\n port: urlParsingNode.port,\r\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\r\n urlParsingNode.pathname :\r\n '/' + urlParsingNode.pathname\r\n };\r\n }\r\n\r\n originURL = resolveURL(window.location.href);\r\n\r\n /**\r\n * Determine if a URL shares the same origin as the current location\r\n *\r\n * @param {String} requestURL The URL to test\r\n * @returns {boolean} True if URL shares the same origin, otherwise false\r\n */\r\n return function isURLSameOrigin(requestURL) {\r\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\r\n return (parsed.protocol === originURL.protocol &&\r\n parsed.host === originURL.host);\r\n };\r\n })() :\r\n\r\n // Non standard browser envs (web workers, react-native) lack needed support.\r\n (function nonStandardBrowserEnv() {\r\n return function isURLSameOrigin() {\r\n return true;\r\n };\r\n })()\r\n);\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Parse headers into an object\r\n *\r\n * ```\r\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\r\n * Content-Type: application/json\r\n * Connection: keep-alive\r\n * Transfer-Encoding: chunked\r\n * ```\r\n *\r\n * @param {String} headers Headers needing to be parsed\r\n * @returns {Object} Headers parsed into an object\r\n */\r\nmodule.exports = function parseHeaders(headers) {\r\n var parsed = {};\r\n var key;\r\n var val;\r\n var i;\r\n\r\n if (!headers) { return parsed; }\r\n\r\n utils.forEach(headers.split('\\n'), function parser(line) {\r\n i = line.indexOf(':');\r\n key = utils.trim(line.substr(0, i)).toLowerCase();\r\n val = utils.trim(line.substr(i + 1));\r\n\r\n if (key) {\r\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n","'use strict';\r\n\r\n/**\r\n * Syntactic sugar for invoking a function and expanding an array for arguments.\r\n *\r\n * Common use case would be to use `Function.prototype.apply`.\r\n *\r\n * ```js\r\n * function f(x, y, z) {}\r\n * var args = [1, 2, 3];\r\n * f.apply(null, args);\r\n * ```\r\n *\r\n * With `spread` this example can be re-written.\r\n *\r\n * ```js\r\n * spread(function(x, y, z) {})([1, 2, 3]);\r\n * ```\r\n *\r\n * @param {Function} callback\r\n * @returns {Function}\r\n */\r\nmodule.exports = function spread(callback) {\r\n return function wrap(arr) {\r\n return callback.apply(null, arr);\r\n };\r\n};\r\n","'use strict';\r\n\r\nvar utils = require('./../utils');\r\n\r\n/**\r\n * Transform the data for a request or a response\r\n *\r\n * @param {Object|String} data The data to be transformed\r\n * @param {Array} headers The headers for the request or response\r\n * @param {Array|Function} fns A single function or Array of functions\r\n * @returns {*} The resulting transformed data\r\n */\r\nmodule.exports = function transformData(data, headers, fns) {\r\n /*eslint no-param-reassign:0*/\r\n utils.forEach(fns, function transform(fn) {\r\n data = fn(data, headers);\r\n });\r\n\r\n return data;\r\n};\r\n","'use strict';\r\n\r\n/*global toString:true*/\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nfunction isArray(val) {\r\n return toString.call(val) === '[object Array]';\r\n}\r\n\r\n/**\r\n * Determine if a value is an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBuffer(val) {\r\n return toString.call(val) === '[object ArrayBuffer]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a FormData\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an FormData, otherwise false\r\n */\r\nfunction isFormData(val) {\r\n return toString.call(val) === '[object FormData]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a view on an ArrayBuffer\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\r\n */\r\nfunction isArrayBufferView(val) {\r\n var result;\r\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\r\n result = ArrayBuffer.isView(val);\r\n } else {\r\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Determine if a value is a String\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a String, otherwise false\r\n */\r\nfunction isString(val) {\r\n return typeof val === 'string';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Number\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Number, otherwise false\r\n */\r\nfunction isNumber(val) {\r\n return typeof val === 'number';\r\n}\r\n\r\n/**\r\n * Determine if a value is undefined\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if the value is undefined, otherwise false\r\n */\r\nfunction isUndefined(val) {\r\n return typeof val === 'undefined';\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nfunction isDate(val) {\r\n return toString.call(val) === '[object Date]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a File\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a File, otherwise false\r\n */\r\nfunction isFile(val) {\r\n return toString.call(val) === '[object File]';\r\n}\r\n\r\n/**\r\n * Determine if a value is a Blob\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Blob, otherwise false\r\n */\r\nfunction isBlob(val) {\r\n return toString.call(val) === '[object Blob]';\r\n}\r\n\r\n/**\r\n * Trim excess whitespace off the beginning and end of a string\r\n *\r\n * @param {String} str The String to trim\r\n * @returns {String} The String freed of excess whitespace\r\n */\r\nfunction trim(str) {\r\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\r\n}\r\n\r\n/**\r\n * Determine if we're running in a standard browser environment\r\n *\r\n * This allows axios to run in a web worker, and react-native.\r\n * Both environments support XMLHttpRequest, but not fully standard globals.\r\n *\r\n * web workers:\r\n * typeof window -> undefined\r\n * typeof document -> undefined\r\n *\r\n * react-native:\r\n * typeof document.createElement -> undefined\r\n */\r\nfunction isStandardBrowserEnv() {\r\n return (\r\n typeof window !== 'undefined' &&\r\n typeof document !== 'undefined' &&\r\n typeof document.createElement === 'function'\r\n );\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nfunction forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return;\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object' && !isArray(obj)) {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj];\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj);\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn.call(null, obj[key], key, obj);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Accepts varargs expecting each argument to be an object, then\r\n * immutably merges the properties of each object and returns result.\r\n *\r\n * When multiple objects contain the same key the later object in\r\n * the arguments list will take precedence.\r\n *\r\n * Example:\r\n *\r\n * ```js\r\n * var result = merge({foo: 123}, {foo: 456});\r\n * console.log(result.foo); // outputs 456\r\n * ```\r\n *\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nfunction merge(/* obj1, obj2, obj3, ... */) {\r\n var result = {};\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = merge(result[key], val);\r\n } else {\r\n result[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue);\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = {\r\n isArray: isArray,\r\n isArrayBuffer: isArrayBuffer,\r\n isFormData: isFormData,\r\n isArrayBufferView: isArrayBufferView,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isObject: isObject,\r\n isUndefined: isUndefined,\r\n isDate: isDate,\r\n isFile: isFile,\r\n isBlob: isBlob,\r\n isStandardBrowserEnv: isStandardBrowserEnv,\r\n forEach: forEach,\r\n merge: merge,\r\n trim: trim\r\n};\r\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Show repository collaborators\r\n // -------\r\n\r\n this.collaborators = function (cb) {\r\n _request('GET', repoPath + '/collaborators', null, cb);\r\n };\r\n\r\n // Check whether user is a collaborator on the repository\r\n // -------\r\n\r\n this.isCollaborator = function (username, cb) {\r\n _request('GET', repoPath + '/collaborators/' + username, null, cb);\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.min.js b/dist/github.min.js deleted file mode 100644 index 300e78a4..00000000 --- a/dist/github.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";!function(e,t){"function"==typeof define&&define.amd?define(["es6-promise","base-64","utf8","axios"],function(n,o,s,i){return e.Github=t(n,o,s,i)}):"object"==typeof module&&module.exports?module.exports=t(require("es6-promise"),require("base-64"),require("utf8"),require("axios")):e.Github=t(e.Promise,e.base64,e.utf8,e.axios)}(this,function(e,t,n,o){function s(e){return t.encode(n.encode(e))}e.polyfill&&e.polyfill();var i=function(e){e=e||{};var t=e.apiUrl||"https://api.github.com",n=i._request=function(n,i,r,u,a){function c(){var e=i.indexOf("//")>=0?i:t+i;if(e+=/\?/.test(e)?"&":"?",r&&"object"==typeof r&&["GET","HEAD","DELETE"].indexOf(n)>-1)for(var o in r)r.hasOwnProperty(o)&&(e+="&"+encodeURIComponent(o)+"="+encodeURIComponent(r[o]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:a?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:n,data:r?r:{},url:c()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+s(e.username+":"+e.password)),o(l).then(function(e){u(null,e.data||!0,e.request)},function(e){304===e.status?u(null,e.data||!0,e.request):u({path:i,request:e.request,error:e.status})})},r=i._requestAllPages=function(e,t){var o=[];!function s(){n("GET",e,null,function(n,i,r){if(n)return t(n);i instanceof Array||(i=[i]),o.push.apply(o,i);var u=(r.getResponseHeader("link")||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();u?(e=u,s()):t(n,o,r)})}()};return i.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),r(n,t)},this.orgs=function(e){n("GET","/user/orgs",null,e)},this.gists=function(e){n("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var o="/notifications",s=[];if(e.all&&s.push("all=true"),e.participating&&s.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),s.push("since="+encodeURIComponent(i))}if(e.before){var r=e.before;r.constructor===Date&&(r=r.toISOString()),s.push("before="+encodeURIComponent(r))}e.page&&s.push("page="+encodeURIComponent(e.page)),s.length>0&&(o+="?"+s.join("&")),n("GET",o,null,t)},this.show=function(e,t){var o=e?"/users/"+e:"/user";n("GET",o,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),r(o,n)},this.userStarred=function(e,t){r("/users/"+e+"/starred?type=all&per_page=100",t)},this.userGists=function(e,t){n("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){r("/orgs/"+e+"/repos?type=all&&page_num=1000&sort=updated&direction=desc",t)},this.follow=function(e,t){n("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){n("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){n("POST","/user/repos",e,t)}},i.Organization=function(){this.createRepo=function(e,t){n("POST","/orgs/"+e.orgname+"/repos",e,t)}},i.Repository=function(e){function t(e,t){return e===l.branch&&l.sha?t(null,l.sha):void c.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,r=e.name,u=e.user,a=e.fullname,c=this;o=a?"/repos/"+a:"/repos/"+u+"/"+r;var l={branch:null,sha:null};this.getRef=function(e,t){n("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){n("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,s){n("DELETE",o+"/git/refs/"+t,e,s)},this.deleteRepo=function(t){n("DELETE",o,e,t)},this.listTags=function(e){n("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var s=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.getPull=function(e,t){n("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,s){n("GET",o+"/compare/"+e+"..."+t,null,s)},this.listBranches=function(e){n("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){n("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,s){n("GET",o+"/git/commits/"+t,null,s)},this.getSha=function(e,t,s){return t&&""!==t?void n("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,n){return e?s(e):void s(null,t.sha,n)}):c.getRef("heads/"+e,s)},this.getStatuses=function(e,t){n("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){n("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,t){e="string"==typeof e?{content:e,encoding:"utf-8"}:{content:s(e),encoding:"base64"},n("POST",o+"/git/blobs",e,function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.updateTree=function(e,t,s,i){var r={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:s}]};n("POST",o+"/git/trees",r,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){n("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,s,r,u){var a=new i.User;a.show(null,function(i,a){if(i)return u(i);var c={message:r,author:{name:e.user,email:a.email},parents:[t],tree:s};n("POST",o+"/git/commits",c,function(e,t,n){return e?u(e):(l.sha=t.sha,void u(null,t.sha,n))})})},this.updateHead=function(e,t,s){n("PATCH",o+"/git/refs/heads/"+e,{sha:t},s)},this.show=function(e){n("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var s=this;n("GET",o+"/stats/contributors",null,function(n,o,i){return n?e(n):void(202===i.status?setTimeout(function(){s.contributors(e,t)},t):e(n,o,i))})},this.collaborators=function(e){n("GET",o+"/collaborators",null,e)},this.isCollaborator=function(e,t){n("GET",o+"/collaborators/"+e,null,t)},this.contents=function(e,t,s){t=encodeURI(t),n("GET",o+"/contents"+(t?"/"+t:""),{ref:e},s)},this.fork=function(e){n("POST",o+"/forks",null,e)},this.listForks=function(e){n("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void c.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){n("POST",o+"/pulls",e,t)},this.listHooks=function(e){n("GET",o+"/hooks",null,e)},this.getHook=function(e,t){n("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){n("POST",o+"/hooks",e,t)},this.editHook=function(e,t,s){n("PATCH",o+"/hooks/"+e,t,s)},this.deleteHook=function(e,t){n("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,s){n("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,s,!0)},this.remove=function(e,t,s){c.getSha(e,t,function(i,r){return i?s(i):void n("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:r,branch:e},s)})},this["delete"]=this.remove,this.move=function(e,n,o,s){t(e,function(t,i){c.getTree(i+"?recursive=true",function(t,r){r.forEach(function(e){e.path===n&&(e.path=o),"tree"===e.type&&delete e.sha}),c.postTree(r,function(t,o){c.commit(i,o,"Deleted "+n,function(t,n){c.updateHead(e,n,s)})})})})},this.write=function(e,t,i,r,u,a){"function"==typeof u&&(a=u,u={}),c.getSha(e,encodeURI(t),function(c,l){var f={message:r,content:"undefined"==typeof u.encode||u.encode?s(i):i,branch:e,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};c&&404!==c.error||(f.sha=l),n("PUT",o+"/contents/"+encodeURI(t),f,a)})},this.getCommits=function(e,t){e=e||{};var s=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var r=e.since;r.constructor===Date&&(r=r.toISOString()),i.push("since="+encodeURIComponent(r))}if(e.until){var u=e.until;u.constructor===Date&&(u=u.toISOString()),i.push("until="+encodeURIComponent(u))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(s+="?"+i.join("&")),n("GET",s,null,t)},this.isStarred=function(e,t,o){n("GET","/user/starred/"+e+"/"+t,null,o)},this.star=function(e,t,o){n("PUT","/user/starred/"+e+"/"+t,null,o)},this.unstar=function(e,t,o){n("DELETE","/user/starred/"+e+"/"+t,null,o)},this.createRelease=function(e,t){n("POST",o+"/releases",e,t)},this.editRelease=function(e,t,s){n("PATCH",o+"/releases/"+e,t,s)},this.getRelease=function(e,t){n("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){n("DELETE",o+"/releases/"+e,null,t)}},i.Gist=function(e){var t=e.id,o="/gists/"+t;this.read=function(e){n("GET",o,null,e)},this.create=function(e,t){n("POST","/gists",e,t)},this["delete"]=function(e){n("DELETE",o,null,e)},this.fork=function(e){n("POST",o+"/fork",null,e)},this.update=function(e,t){n("PATCH",o,e,t)},this.star=function(e){n("PUT",o+"/star",null,e)},this.unstar=function(e){n("DELETE",o+"/star",null,e)},this.isStarred=function(e){n("GET",o+"/star",null,e)}},i.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,o){n("POST",t,e,o)},this.list=function(e,n){var o=[];for(var s in e)e.hasOwnProperty(s)&&o.push(encodeURIComponent(s)+"="+encodeURIComponent(e[s]));r(t+"?"+o.join("&"),n)},this.comment=function(e,t,o){n("POST",e.comments_url,{body:t},o)},this.edit=function(e,o,s){n("PATCH",t+"/"+e,o,s)},this.get=function(e,o){n("GET",t+"/"+e,null,o)}},i.Search=function(e){var t="/search/",o="?q="+e.query;this.repositories=function(e,s){n("GET",t+"repositories"+o,e,s)},this.code=function(e,s){n("GET",t+"code"+o,e,s)},this.issues=function(e,s){n("GET",t+"issues"+o,e,s)},this.users=function(e,s){n("GET",t+"users"+o,e,s)}},i.RateLimit=function(){this.getRateLimit=function(e){n("GET","/rate_limit",null,e)}},i};return i.getIssues=function(e,t){return new i.Issue({user:e,repo:t})},i.getRepo=function(e,t){return t?new i.Repository({user:e,name:t}):new i.Repository({fullname:e})},i.getUser=function(){return new i.User},i.getOrg=function(){return new i.Organization},i.getGist=function(e){return new i.Gist({id:e})},i.getSearch=function(e){return new i.Search({query:e})},i.getRateLimit=function(){return new i.RateLimit},i}); -//# sourceMappingURL=github.min.js.map diff --git a/dist/github.min.js.map b/dist/github.min.js.map deleted file mode 100644 index 2fa295f5..00000000 --- a/dist/github.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["github.min.js"],"names":["root","factory","define","amd","Promise","Base64","Utf8","axios","Github","module","exports","require","base64","utf8","this","b64encode","string","encode","polyfill","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","username","password","Authorization","token","then","response","request","status","error","_requestAllPages","results","iterate","err","res","xhr","Array","push","apply","next","getResponseHeader","split","filter","link","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Organization","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","collaborators","isCollaborator","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","key","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","getIssues","getRepo","getUser","getOrg","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["/*!\r\n * @overview Github.js\r\n *\r\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\r\n * Github.js is freely distributable.\r\n *\r\n * @license Licensed under BSD-3-Clause-Clear\r\n *\r\n * For all details and documentation:\r\n * http://substance.io/michael/github\r\n */\r\n'use strict';\r\n\r\n(function (root, factory) {\r\n /* istanbul ignore next */\r\n if (typeof define === 'function' && define.amd) {\r\n define(\r\n [\r\n 'es6-promise',\r\n 'base-64',\r\n 'utf8',\r\n 'axios'\r\n ],\r\n function (Promise, Base64, Utf8, axios) {\r\n return (root.Github = factory(Promise, Base64, Utf8, axios));\r\n }\r\n );\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios'));\r\n } else {\r\n root.Github = factory(root.Promise, root.base64, root.utf8, root.axios);\r\n }\r\n}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line\r\n function b64encode(string) {\r\n return Base64.encode(Utf8.encode(string));\r\n }\r\n\r\n if (Promise.polyfill) {\r\n Promise.polyfill();\r\n }\r\n\r\n // Initial Setup\r\n // -------------\r\n\r\n var Github = function (options) {\r\n options = options || {};\r\n\r\n var API_URL = options.apiUrl || 'https://api.github.com';\r\n\r\n // HTTP Request Abstraction\r\n // =======\r\n //\r\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\r\n\r\n var _request = Github._request = function _request(method, path, data, cb, raw) {\r\n function getURL() {\r\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\r\n\r\n url += ((/\\?/).test(url) ? '&' : '?');\r\n\r\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\r\n for(var param in data) {\r\n if (data.hasOwnProperty(param)) {\r\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\r\n }\r\n }\r\n }\r\n\r\n return url.replace(/(×tamp=\\d+)/, '') +\r\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\r\n }\r\n\r\n var config = {\r\n headers: {\r\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n method: method,\r\n data: data ? data : {},\r\n url: getURL()\r\n };\r\n\r\n if ((options.token) || (options.username && options.password)) {\r\n config.headers.Authorization = options.token ?\r\n 'token ' + options.token :\r\n 'Basic ' + b64encode(options.username + ':' + options.password);\r\n }\r\n\r\n return axios(config)\r\n .then(function (response) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n }, function (response) {\r\n if (response.status === 304) {\r\n cb(\r\n null,\r\n response.data || true,\r\n response.request\r\n );\r\n } else {\r\n cb({\r\n path: path,\r\n request: response.request,\r\n error: response.status\r\n });\r\n }\r\n });\r\n };\r\n\r\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) {\r\n var results = [];\r\n\r\n (function iterate() {\r\n _request('GET', path, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (!(res instanceof Array)) {\r\n res = [res];\r\n }\r\n\r\n results.push.apply(results, res);\r\n\r\n var next = (xhr.getResponseHeader('link') || '')\r\n .split(',')\r\n .filter(function(link) {\r\n return /rel=\"next\"/.test(link);\r\n })\r\n .map(function(link) {\r\n return (/<(.*)>/.exec(link) || [])[1];\r\n })\r\n .pop();\r\n\r\n if (!next) {\r\n cb(err, results, xhr);\r\n } else {\r\n path = next;\r\n iterate();\r\n }\r\n });\r\n })();\r\n };\r\n\r\n // User API\r\n // =======\r\n\r\n Github.User = function () {\r\n this.repos = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n\r\n var url = '/user/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user organizations\r\n // -------\r\n\r\n this.orgs = function (cb) {\r\n _request('GET', '/user/orgs', null, cb);\r\n };\r\n\r\n // List authenticated user's gists\r\n // -------\r\n\r\n this.gists = function (cb) {\r\n _request('GET', '/gists', null, cb);\r\n };\r\n\r\n // List authenticated user's unread notifications\r\n // -------\r\n\r\n this.notifications = function (options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n options = options || {};\r\n var url = '/notifications';\r\n var params = [];\r\n\r\n if (options.all) {\r\n params.push('all=true');\r\n }\r\n\r\n if (options.participating) {\r\n params.push('participating=true');\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.before) {\r\n var before = options.before;\r\n\r\n if (before.constructor === Date) {\r\n before = before.toISOString();\r\n }\r\n\r\n params.push('before=' + encodeURIComponent(before));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Show user information\r\n // -------\r\n\r\n this.show = function (username, cb) {\r\n var command = username ? '/users/' + username : '/user';\r\n\r\n _request('GET', command, null, cb);\r\n };\r\n\r\n // List user repositories\r\n // -------\r\n\r\n this.userRepos = function (username, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n var url = '/users/' + username + '/repos';\r\n var params = [];\r\n\r\n params.push('type=' + encodeURIComponent(options.type || 'all'));\r\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\r\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\r\n\r\n if (options.page) {\r\n params.push('page=' + encodeURIComponent(options.page));\r\n }\r\n\r\n url += '?' + params.join('&');\r\n\r\n _requestAllPages(url, cb);\r\n };\r\n\r\n // List user starred repositories\r\n // -------\r\n\r\n this.userStarred = function (username, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb);\r\n };\r\n\r\n // List a user's gists\r\n // -------\r\n\r\n this.userGists = function (username, cb) {\r\n _request('GET', '/users/' + username + '/gists', null, cb);\r\n };\r\n\r\n // List organization repositories\r\n // -------\r\n\r\n this.orgRepos = function (orgname, cb) {\r\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\r\n _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb);\r\n };\r\n\r\n // Follow user\r\n // -------\r\n\r\n this.follow = function (username, cb) {\r\n _request('PUT', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Unfollow user\r\n // -------\r\n\r\n this.unfollow = function (username, cb) {\r\n _request('DELETE', '/user/following/' + username, null, cb);\r\n };\r\n\r\n // Create a repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/user/repos', options, cb);\r\n };\r\n };\r\n\r\n Github.Organization = function () {\r\n // Create an Organization repo\r\n // -------\r\n this.createRepo = function (options, cb) {\r\n _request('POST', '/orgs/' + options.orgname + '/repos', options, cb);\r\n };\r\n };\r\n\r\n // Repository API\r\n // =======\r\n\r\n Github.Repository = function (options) {\r\n var repo = options.name;\r\n var user = options.user;\r\n var fullname = options.fullname;\r\n\r\n var that = this;\r\n var repoPath;\r\n\r\n if (fullname) {\r\n repoPath = '/repos/' + fullname;\r\n } else {\r\n repoPath = '/repos/' + user + '/' + repo;\r\n }\r\n\r\n var currentTree = {\r\n branch: null,\r\n sha: null\r\n };\r\n\r\n // Uses the cache if branch has not been changed\r\n // -------\r\n\r\n function updateTree(branch, cb) {\r\n if (branch === currentTree.branch && currentTree.sha) {\r\n return cb(null, currentTree.sha);\r\n }\r\n\r\n that.getRef('heads/' + branch, function (err, sha) {\r\n currentTree.branch = branch;\r\n currentTree.sha = sha;\r\n cb(err, sha);\r\n });\r\n }\r\n\r\n // Get a particular reference\r\n // -------\r\n\r\n this.getRef = function (ref, cb) {\r\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.object.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new reference\r\n // --------\r\n //\r\n // {\r\n // \"ref\": \"refs/heads/my-new-branch-name\",\r\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\r\n // }\r\n\r\n this.createRef = function (options, cb) {\r\n _request('POST', repoPath + '/git/refs', options, cb);\r\n };\r\n\r\n // Delete a reference\r\n // --------\r\n //\r\n // Repo.deleteRef('heads/gh-pages')\r\n // repo.deleteRef('tags/v1.0')\r\n\r\n this.deleteRef = function (ref, cb) {\r\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\r\n };\r\n\r\n // Delete a repo\r\n // --------\r\n\r\n this.deleteRepo = function (cb) {\r\n _request('DELETE', repoPath, options, cb);\r\n };\r\n\r\n // List all tags of a repository\r\n // -------\r\n\r\n this.listTags = function (cb) {\r\n _request('GET', repoPath + '/tags', null, cb);\r\n };\r\n\r\n // List all pull requests of a respository\r\n // -------\r\n\r\n this.listPulls = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/pulls';\r\n var params = [];\r\n\r\n if (typeof options === 'string') {\r\n // Backward compatibility\r\n params.push('state=' + options);\r\n } else {\r\n if (options.state) {\r\n params.push('state=' + encodeURIComponent(options.state));\r\n }\r\n\r\n if (options.head) {\r\n params.push('head=' + encodeURIComponent(options.head));\r\n }\r\n\r\n if (options.base) {\r\n params.push('base=' + encodeURIComponent(options.base));\r\n }\r\n\r\n if (options.sort) {\r\n params.push('sort=' + encodeURIComponent(options.sort));\r\n }\r\n\r\n if (options.direction) {\r\n params.push('direction=' + encodeURIComponent(options.direction));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.per_page) {\r\n params.push('per_page=' + options.per_page);\r\n }\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Gets details for a specific pull request\r\n // -------\r\n\r\n this.getPull = function (number, cb) {\r\n _request('GET', repoPath + '/pulls/' + number, null, cb);\r\n };\r\n\r\n // Retrieve the changes made between base and head\r\n // -------\r\n\r\n this.compare = function (base, head, cb) {\r\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\r\n };\r\n\r\n // List all branches of a repository\r\n // -------\r\n\r\n this.listBranches = function (cb) {\r\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n heads = heads.map(function (head) {\r\n return head.ref.replace(/^refs\\/heads\\//, '');\r\n });\r\n\r\n cb(null, heads, xhr);\r\n });\r\n };\r\n\r\n // Retrieve the contents of a blob\r\n // -------\r\n\r\n this.getBlob = function (sha, cb) {\r\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getCommit = function (branch, sha, cb) {\r\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\r\n };\r\n\r\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\r\n // -------\r\n\r\n this.getSha = function (branch, path, cb) {\r\n if (!path || path === '') {\r\n return that.getRef('heads/' + branch, cb);\r\n }\r\n\r\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\r\n null, function (err, pathContent, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, pathContent.sha, xhr);\r\n });\r\n };\r\n\r\n // Get the statuses for a particular SHA\r\n // -------\r\n\r\n this.getStatuses = function (sha, cb) {\r\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\r\n };\r\n\r\n // Retrieve the tree a commit points to\r\n // -------\r\n\r\n this.getTree = function (tree, cb) {\r\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.tree, xhr);\r\n });\r\n };\r\n\r\n // Post a new blob object, getting a blob SHA back\r\n // -------\r\n\r\n this.postBlob = function (content, cb) {\r\n if (typeof content === 'string') {\r\n content = {\r\n content: content,\r\n encoding: 'utf-8'\r\n };\r\n } else {\r\n content = {\r\n content: b64encode(content),\r\n encoding: 'base64'\r\n };\r\n }\r\n\r\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Update an existing tree adding a new blob object getting a tree SHA back\r\n // -------\r\n\r\n this.updateTree = function (baseTree, path, blob, cb) {\r\n var data = {\r\n base_tree: baseTree,\r\n tree: [\r\n {\r\n path: path,\r\n mode: '100644',\r\n type: 'blob',\r\n sha: blob\r\n }\r\n ]\r\n };\r\n\r\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Post a new tree object having a file path pointer replaced\r\n // with a new blob SHA getting a tree SHA back\r\n // -------\r\n\r\n this.postTree = function (tree, cb) {\r\n _request('POST', repoPath + '/git/trees', {\r\n tree: tree\r\n }, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n };\r\n\r\n // Create a new commit object with the current commit SHA as the parent\r\n // and the new tree SHA, getting a commit SHA back\r\n // -------\r\n\r\n this.commit = function (parent, tree, message, cb) {\r\n var user = new Github.User();\r\n\r\n user.show(null, function (err, userData) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n var data = {\r\n message: message,\r\n author: {\r\n name: options.user,\r\n email: userData.email\r\n },\r\n parents: [\r\n parent\r\n ],\r\n tree: tree\r\n };\r\n\r\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n currentTree.sha = res.sha; // Update latest commit\r\n\r\n cb(null, res.sha, xhr);\r\n });\r\n });\r\n };\r\n\r\n // Update the reference of your head to point to the new commit SHA\r\n // -------\r\n\r\n this.updateHead = function (head, commit, cb) {\r\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\r\n sha: commit\r\n }, cb);\r\n };\r\n\r\n // Show repository information\r\n // -------\r\n\r\n this.show = function (cb) {\r\n _request('GET', repoPath, null, cb);\r\n };\r\n\r\n // Show repository contributors\r\n // -------\r\n\r\n this.contributors = function (cb, retry) {\r\n retry = retry || 1000;\r\n var that = this;\r\n\r\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n if (xhr.status === 202) {\r\n setTimeout(\r\n function () {\r\n that.contributors(cb, retry);\r\n },\r\n retry\r\n );\r\n } else {\r\n cb(err, data, xhr);\r\n }\r\n });\r\n };\r\n\r\n // Show repository collaborators\r\n // -------\r\n\r\n this.collaborators = function (cb) {\r\n _request('GET', repoPath + '/collaborators', null, cb);\r\n };\r\n\r\n // Check whether user is a collaborator on the repository\r\n // -------\r\n\r\n this.isCollaborator = function (username, cb) {\r\n _request('GET', repoPath + '/collaborators/' + username, null, cb);\r\n };\r\n\r\n // Get contents\r\n // --------\r\n\r\n this.contents = function (ref, path, cb) {\r\n path = encodeURI(path);\r\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\r\n ref: ref\r\n }, cb);\r\n };\r\n\r\n // Fork repository\r\n // -------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // List forks\r\n // --------\r\n\r\n this.listForks = function (cb) {\r\n _request('GET', repoPath + '/forks', null, cb);\r\n };\r\n\r\n // Branch repository\r\n // --------\r\n\r\n this.branch = function (oldBranch, newBranch, cb) {\r\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\r\n cb = newBranch;\r\n newBranch = oldBranch;\r\n oldBranch = 'master';\r\n }\r\n\r\n this.getRef('heads/' + oldBranch, function (err, ref) {\r\n if (err && cb) {\r\n return cb(err);\r\n }\r\n\r\n that.createRef({\r\n ref: 'refs/heads/' + newBranch,\r\n sha: ref\r\n }, cb);\r\n });\r\n };\r\n\r\n // Create pull request\r\n // --------\r\n\r\n this.createPullRequest = function (options, cb) {\r\n _request('POST', repoPath + '/pulls', options, cb);\r\n };\r\n\r\n // List hooks\r\n // --------\r\n\r\n this.listHooks = function (cb) {\r\n _request('GET', repoPath + '/hooks', null, cb);\r\n };\r\n\r\n // Get a hook\r\n // --------\r\n\r\n this.getHook = function (id, cb) {\r\n _request('GET', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Create a hook\r\n // --------\r\n\r\n this.createHook = function (options, cb) {\r\n _request('POST', repoPath + '/hooks', options, cb);\r\n };\r\n\r\n // Edit a hook\r\n // --------\r\n\r\n this.editHook = function (id, options, cb) {\r\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\r\n };\r\n\r\n // Delete a hook\r\n // --------\r\n\r\n this.deleteHook = function (id, cb) {\r\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\r\n };\r\n\r\n // Read file at given path\r\n // -------\r\n\r\n this.read = function (branch, path, cb) {\r\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\r\n null, cb, true);\r\n };\r\n\r\n // Remove a file\r\n // -------\r\n\r\n this.remove = function (branch, path, cb) {\r\n that.getSha(branch, path, function (err, sha) {\r\n if (err) {\r\n return cb(err);\r\n }\r\n\r\n _request('DELETE', repoPath + '/contents/' + path, {\r\n message: path + ' is removed',\r\n sha: sha,\r\n branch: branch\r\n }, cb);\r\n });\r\n };\r\n\r\n // Alias for repo.remove for backwards comapt.\r\n // -------\r\n this.delete = this.remove;\r\n\r\n // Move a file to a new location\r\n // -------\r\n\r\n this.move = function (branch, path, newPath, cb) {\r\n updateTree(branch, function (err, latestCommit) {\r\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\r\n // Update Tree\r\n tree.forEach(function (ref) {\r\n if (ref.path === path) {\r\n ref.path = newPath;\r\n }\r\n\r\n if (ref.type === 'tree') {\r\n delete ref.sha;\r\n }\r\n });\r\n\r\n that.postTree(tree, function (err, rootTree) {\r\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\r\n that.updateHead(branch, commit, cb);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n // Write file contents to a given branch and path\r\n // -------\r\n\r\n this.write = function (branch, path, content, message, options, cb) {\r\n if (typeof options === 'function') {\r\n cb = options;\r\n options = {};\r\n }\r\n\r\n that.getSha(branch, encodeURI(path), function (err, sha) {\r\n var writeOptions = {\r\n message: message,\r\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\r\n branch: branch,\r\n committer: options && options.committer ? options.committer : undefined,\r\n author: options && options.author ? options.author : undefined\r\n };\r\n\r\n // If no error, we set the sha to overwrite an existing file\r\n if (!(err && err.error !== 404)) {\r\n writeOptions.sha = sha;\r\n }\r\n\r\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\r\n });\r\n };\r\n\r\n // List commits on a repository. Takes an object of optional parameters:\r\n // sha: SHA or branch to start listing commits from\r\n // path: Only commits containing this file path will be returned\r\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\r\n // since: ISO 8601 date - only commits after this date will be returned\r\n // until: ISO 8601 date - only commits before this date will be returned\r\n // -------\r\n\r\n this.getCommits = function (options, cb) {\r\n options = options || {};\r\n var url = repoPath + '/commits';\r\n var params = [];\r\n\r\n if (options.sha) {\r\n params.push('sha=' + encodeURIComponent(options.sha));\r\n }\r\n\r\n if (options.path) {\r\n params.push('path=' + encodeURIComponent(options.path));\r\n }\r\n\r\n if (options.author) {\r\n params.push('author=' + encodeURIComponent(options.author));\r\n }\r\n\r\n if (options.since) {\r\n var since = options.since;\r\n\r\n if (since.constructor === Date) {\r\n since = since.toISOString();\r\n }\r\n\r\n params.push('since=' + encodeURIComponent(since));\r\n }\r\n\r\n if (options.until) {\r\n var until = options.until;\r\n\r\n if (until.constructor === Date) {\r\n until = until.toISOString();\r\n }\r\n\r\n params.push('until=' + encodeURIComponent(until));\r\n }\r\n\r\n if (options.page) {\r\n params.push('page=' + options.page);\r\n }\r\n\r\n if (options.perpage) {\r\n params.push('per_page=' + options.perpage);\r\n }\r\n\r\n if (params.length > 0) {\r\n url += '?' + params.join('&');\r\n }\r\n\r\n _request('GET', url, null, cb);\r\n };\r\n\r\n // Check if a repository is starred.\r\n // --------\r\n\r\n this.isStarred = function(owner, repository, cb) {\r\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Star a repository.\r\n // --------\r\n\r\n this.star = function(owner, repository, cb) {\r\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Unstar a repository.\r\n // --------\r\n\r\n this.unstar = function(owner, repository, cb) {\r\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\r\n };\r\n\r\n // Create a new release\r\n // --------\r\n\r\n this.createRelease = function(options, cb) {\r\n _request('POST', repoPath + '/releases', options, cb);\r\n };\r\n\r\n // Edit a release\r\n // --------\r\n\r\n this.editRelease = function(id, options, cb) {\r\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\r\n };\r\n\r\n // Get a single release\r\n // --------\r\n\r\n this.getRelease = function(id, cb) {\r\n _request('GET', repoPath + '/releases/' + id, null, cb);\r\n };\r\n\r\n // Remove a release\r\n // --------\r\n\r\n this.deleteRelease = function(id, cb) {\r\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\r\n };\r\n };\r\n\r\n // Gists API\r\n // =======\r\n\r\n Github.Gist = function (options) {\r\n var id = options.id;\r\n var gistPath = '/gists/' + id;\r\n\r\n // Read the gist\r\n // --------\r\n\r\n this.read = function (cb) {\r\n _request('GET', gistPath, null, cb);\r\n };\r\n\r\n // Create the gist\r\n // --------\r\n // {\r\n // \"description\": \"the description for this gist\",\r\n // \"public\": true,\r\n // \"files\": {\r\n // \"file1.txt\": {\r\n // \"content\": \"String file contents\"\r\n // }\r\n // }\r\n // }\r\n\r\n this.create = function (options, cb) {\r\n _request('POST', '/gists', options, cb);\r\n };\r\n\r\n // Delete the gist\r\n // --------\r\n\r\n this.delete = function (cb) {\r\n _request('DELETE', gistPath, null, cb);\r\n };\r\n\r\n // Fork a gist\r\n // --------\r\n\r\n this.fork = function (cb) {\r\n _request('POST', gistPath + '/fork', null, cb);\r\n };\r\n\r\n // Update a gist with the new stuff\r\n // --------\r\n\r\n this.update = function (options, cb) {\r\n _request('PATCH', gistPath, options, cb);\r\n };\r\n\r\n // Star a gist\r\n // --------\r\n\r\n this.star = function (cb) {\r\n _request('PUT', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Untar a gist\r\n // --------\r\n\r\n this.unstar = function (cb) {\r\n _request('DELETE', gistPath + '/star', null, cb);\r\n };\r\n\r\n // Check if a gist is starred\r\n // --------\r\n\r\n this.isStarred = function (cb) {\r\n _request('GET', gistPath + '/star', null, cb);\r\n };\r\n };\r\n\r\n // Issues API\r\n // ==========\r\n\r\n Github.Issue = function (options) {\r\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\r\n\r\n this.create = function(options, cb) {\r\n _request('POST', path, options, cb);\r\n };\r\n\r\n this.list = function (options, cb) {\r\n var query = [];\r\n\r\n for(var key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key]));\r\n }\r\n }\r\n\r\n _requestAllPages(path + '?' + query.join('&'), cb);\r\n };\r\n\r\n this.comment = function (issue, comment, cb) {\r\n _request('POST', issue.comments_url, {\r\n body: comment\r\n }, cb);\r\n };\r\n\r\n this.edit = function (issue, options, cb) {\r\n _request('PATCH', path + '/' + issue, options, cb);\r\n };\r\n\r\n this.get = function (issue, cb) {\r\n _request('GET', path + '/' + issue, null, cb);\r\n };\r\n };\r\n\r\n // Search API\r\n // ==========\r\n\r\n Github.Search = function (options) {\r\n var path = '/search/';\r\n var query = '?q=' + options.query;\r\n\r\n this.repositories = function (options, cb) {\r\n _request('GET', path + 'repositories' + query, options, cb);\r\n };\r\n\r\n this.code = function (options, cb) {\r\n _request('GET', path + 'code' + query, options, cb);\r\n };\r\n\r\n this.issues = function (options, cb) {\r\n _request('GET', path + 'issues' + query, options, cb);\r\n };\r\n\r\n this.users = function (options, cb) {\r\n _request('GET', path + 'users' + query, options, cb);\r\n };\r\n };\r\n\r\n // Rate Limit API\r\n // ==========\r\n\r\n Github.RateLimit = function() {\r\n this.getRateLimit = function(cb) {\r\n _request('GET', '/rate_limit', null, cb);\r\n };\r\n };\r\n\r\n return Github;\r\n };\r\n\r\n // Top Level API\r\n // -------\r\n\r\n Github.getIssues = function (user, repo) {\r\n return new Github.Issue({\r\n user: user,\r\n repo: repo\r\n });\r\n };\r\n\r\n Github.getRepo = function (user, repo) {\r\n if (!repo) {\r\n return new Github.Repository({\r\n fullname: user\r\n });\r\n } else {\r\n return new Github.Repository({\r\n user: user,\r\n name: repo\r\n });\r\n }\r\n };\r\n\r\n Github.getUser = function () {\r\n return new Github.User();\r\n };\r\n\r\n Github.getOrg = function () {\r\n return new Github.Organization();\r\n };\r\n\r\n Github.getGist = function (id) {\r\n return new Github.Gist({\r\n id: id\r\n });\r\n };\r\n\r\n Github.getSearch = function (query) {\r\n return new Github.Search({\r\n query: query\r\n });\r\n };\r\n\r\n Github.getRateLimit = function() {\r\n return new Github.RateLimit();\r\n };\r\n\r\n return Github;\r\n}));\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index cd693819..4da37a2b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -13,6 +13,7 @@ var del = require('del'); var stylish = require('gulp-jscs-stylish'); var path = require('path'); var karma = require('karma'); +var babel = require('gulp-babel'); function runTests(singleRun, isCI, done) { var reporters = ['mocha']; @@ -107,34 +108,47 @@ gulp.task('clean', function () { }); gulp.task('build', function() { - var browserifyInstance = browserify({ + var bundler = browserify({ debug: true, entries: 'src/github.js', standalone: 'Github' }); - browserifyInstance + bundler + .transform('babelify') .bundle() .pipe(source('github.js')) .pipe(buffer()) .pipe(sourcemaps.init({ loadMaps: true })) - .pipe(uglify()) + .pipe(uglify()) .pipe(rename({ extname: '.bundle.min.js' })) .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')); + .pipe(gulp.dest('dist')) + ; + + var babeled = gulp.src('src/github.js') + .pipe(babel()) + ; + + babeled + .pipe(sourcemaps.init()) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('dist')) + ; - return gulp.src('src/github.js') + return babeled .pipe(sourcemaps.init()) .pipe(rename({ extname: '.min.js' })) .pipe(uglify()) .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')); + .pipe(gulp.dest('dist')) + ; }); gulp.task('default', ['clean'], function() { diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index 17cec5a6..00000000 --- a/karma.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = function (config) { - 'use strict'; - - var configuration = { - browserNoActivityTimeout: 30000, - - client: { - captureConsole: true, - mocha: { - timeout: 30000, - ui: 'bdd' - } - }, - - concurrency: 2, - - singleRun: true, - - autoWatch: false, - - frameworks: [ - 'browserify', - 'mocha', - 'chai' - ], - - browsers: ['PhantomJS'], - - browserify: { - debug: true, - transform: ['browserify-istanbul'] - }, - - phantomjsLauncher: { - debug: true, - options: { - settings: { - webSecurityEnabled: false - } - } - }, - - coverageReporter: { - reporters: [ - { - type: 'lcov' - }, - { - type: 'text-summary' - } - ], - instrumenterOptions: { - istanbul: { - noCompact: true - } - } - } - }; - - // This block is needed to execute Chrome on Travis - // If you ever plan to use Chrome and Travis, you can keep it - // If not, you can safely remove it - // https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076 - if (configuration.browsers[0] === 'Chrome' && process.env.TRAVIS) { - configuration.customLaunchers = { - 'chrome-travis-ci': { - base: 'Chrome', - flags: ['--no-sandbox'] - } - }; - configuration.browsers = ['chrome-travis-ci']; - } - - config.set(configuration); -}; diff --git a/package.json b/package.json index 15501508..f5fdb956 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,16 @@ "utf8": "^2.1.1" }, "devDependencies": { + "babel-plugin-transform-es2015-modules-umd": "^6.5.0", + "babel-preset-es2015": "^6.5.0", + "babelify": "^7.2.0", "browserify": "^13.0.0", "browserify-istanbul": "^0.2.1", "chai": "^3.4.1", "codecov": "^1.0.1", "del": "^2.2.0", "gulp": "^3.9.0", + "gulp-babel": "^6.1.2", "gulp-jscs": "^3.0.2", "gulp-jscs-stylish": "^1.3.0", "gulp-jshint": "^2.0.0", diff --git a/src/github.js b/src/github.js index 6fdd370e..d8d57f26 100644 --- a/src/github.js +++ b/src/github.js @@ -11,1166 +11,1154 @@ */ 'use strict'; -(function (root, factory) { - /* istanbul ignore next */ - if (typeof define === 'function' && define.amd) { - define( - [ - 'es6-promise', - 'base-64', - 'utf8', - 'axios' - ], - function (Promise, Base64, Utf8, axios) { - return (root.Github = factory(Promise, Base64, Utf8, axios)); - } - ); - } else if (typeof module === 'object' && module.exports) { - module.exports = factory(require('es6-promise'), require('base-64'), require('utf8'), require('axios')); - } else { - root.Github = factory(root.Promise, root.base64, root.utf8, root.axios); - } -}(this, function(Promise, Base64, Utf8, axios) { // jshint ignore:line - function b64encode(string) { - return Base64.encode(Utf8.encode(string)); - } +var Utf8 = require('utf8'); +var axios = require('axios'); +var Base64 = require('base-64'); +var Promise = require('es6-promise'); - if (Promise.polyfill) { - Promise.polyfill(); - } +function b64encode(string) { + return Base64.encode(Utf8.encode(string)); +} - // Initial Setup - // ------------- +if (Promise.polyfill) { + Promise.polyfill(); +} - var Github = function (options) { - options = options || {}; +// Initial Setup +// ------------- - var API_URL = options.apiUrl || 'https://api.github.com'; +function Github(options) { + options = options || {}; - // HTTP Request Abstraction - // ======= - // - // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec. + var API_URL = options.apiUrl || 'https://api.github.com'; - var _request = Github._request = function _request(method, path, data, cb, raw) { - function getURL() { - var url = path.indexOf('//') >= 0 ? path : API_URL + path; + var _request = Github._request = function _request(method, path, data, cb, raw) { + function getURL() { + var url = path.indexOf('//') >= 0 ? path : API_URL + path; - url += ((/\?/).test(url) ? '&' : '?'); + url += ((/\?/).test(url) ? '&' : '?'); - if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) { - for(var param in data) { - if (data.hasOwnProperty(param)) { - url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]); - } + if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) { + for(var param in data) { + if (data.hasOwnProperty(param)) { + url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]); } } - - return url.replace(/(×tamp=\d+)/, '') + - (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : ''); } - var config = { - headers: { - Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', - 'Content-Type': 'application/json;charset=UTF-8' - }, - method: method, - data: data ? data : {}, - url: getURL() - }; + return url.replace(/(×tamp=\d+)/, '') + + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : ''); + } - if ((options.token) || (options.username && options.password)) { - config.headers.Authorization = options.token ? - 'token ' + options.token : - 'Basic ' + b64encode(options.username + ':' + options.password); - } + var config = { + headers: { + Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', + 'Content-Type': 'application/json;charset=UTF-8' + }, + method: method, + data: data ? data : {}, + url: getURL() + }; + + if ((options.token) || (options.username && options.password)) { + config.headers.Authorization = options.token ? + 'token ' + options.token : + 'Basic ' + b64encode(options.username + ':' + options.password); + } - return axios(config) - .then(function (response) { + return axios(config) + .then(function(response) { + cb( + null, + response.data || true, + response + ); + }, function(response) { + if (response.status === 304) { cb( null, response.data || true, response.request ); - }, function (response) { - if (response.status === 304) { - cb( - null, - response.data || true, - response.request - ); - } else { - cb({ - path: path, - request: response.request, - error: response.status - }); - } - }); - }; + } else { + cb({ + path: path, + request: response, + error: response.status + }); + } + }); + }; - var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, cb) { - var results = []; + var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) { + var results = []; - (function iterate() { - _request('GET', path, null, function (err, res, xhr) { - if (err) { - return cb(err); - } + (function iterate() { + _request('GET', path, null, function(err, res, xhr) { + if (err) { + return cb(err); + } - if (!(res instanceof Array)) { - res = [res]; - } + if (!(res instanceof Array)) { + res = [res]; + } - results.push.apply(results, res); - - var next = (xhr.getResponseHeader('link') || '') - .split(',') - .filter(function(link) { - return /rel="next"/.test(link); - }) - .map(function(link) { - return (/<(.*)>/.exec(link) || [])[1]; - }) - .pop(); - - if (!next) { - cb(err, results, xhr); - } else { - path = next; - iterate(); - } - }); - })(); - }; + results.push.apply(results, res); - // User API - // ======= + var next = (xhr.headers.link || '') + .split(',') + .filter(function(link) { + return /rel="next"/.test(link); + }) + .map(function(link) { + return (/<(.*)>/.exec(link) || [])[1]; + }) + .pop(); - Github.User = function () { - this.repos = function (options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; + if (!next || singlePage) { + cb(err, results, xhr); + } else { + path = next; + iterate(); } + }); + })(); + }; - options = options || {}; + // User API + // ======= - var url = '/user/repos'; - var params = []; + Github.User = function() { + this.repos = function(options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } - params.push('type=' + encodeURIComponent(options.type || 'all')); - params.push('sort=' + encodeURIComponent(options.sort || 'updated')); - params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore + options = options || {}; - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } + var url = '/user/repos'; + var params = []; - url += '?' + params.join('&'); + params.push('type=' + encodeURIComponent(options.type || 'all')); + params.push('sort=' + encodeURIComponent(options.sort || 'updated')); + params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore - _requestAllPages(url, cb); - }; + if (options.page) { + params.push('page=' + encodeURIComponent(options.page)); + } - // List user organizations - // ------- + url += '?' + params.join('&'); - this.orgs = function (cb) { - _request('GET', '/user/orgs', null, cb); - }; + _requestAllPages(url, !!options.page, cb); + }; - // List authenticated user's gists - // ------- + // List user organizations + // ------- - this.gists = function (cb) { - _request('GET', '/gists', null, cb); - }; + this.orgs = function(cb) { + _request('GET', '/user/orgs', null, cb); + }; - // List authenticated user's unread notifications - // ------- + // List authenticated user's gists + // ------- - this.notifications = function (options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } + this.gists = function(cb) { + _request('GET', '/gists', null, cb); + }; - options = options || {}; - var url = '/notifications'; - var params = []; + // List authenticated user's unread notifications + // ------- - if (options.all) { - params.push('all=true'); - } + this.notifications = function(options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } - if (options.participating) { - params.push('participating=true'); - } + options = options || {}; + var url = '/notifications'; + var params = []; + + if (options.all) { + params.push('all=true'); + } - if (options.since) { - var since = options.since; + if (options.participating) { + params.push('participating=true'); + } - if (since.constructor === Date) { - since = since.toISOString(); - } + if (options.since) { + var since = options.since; - params.push('since=' + encodeURIComponent(since)); + if (since.constructor === Date) { + since = since.toISOString(); } - if (options.before) { - var before = options.before; + params.push('since=' + encodeURIComponent(since)); + } - if (before.constructor === Date) { - before = before.toISOString(); - } + if (options.before) { + var before = options.before; - params.push('before=' + encodeURIComponent(before)); + if (before.constructor === Date) { + before = before.toISOString(); } - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } + params.push('before=' + encodeURIComponent(before)); + } - if (params.length > 0) { - url += '?' + params.join('&'); - } + if (options.page) { + params.push('page=' + encodeURIComponent(options.page)); + } - _request('GET', url, null, cb); - }; + if (params.length > 0) { + url += '?' + params.join('&'); + } - // Show user information - // ------- + _request('GET', url, null, cb); + }; - this.show = function (username, cb) { - var command = username ? '/users/' + username : '/user'; + // Show user information + // ------- - _request('GET', command, null, cb); - }; + this.show = function(username, cb) { + var command = username ? '/users/' + username : '/user'; - // List user repositories - // ------- + _request('GET', command, null, cb); + }; - this.userRepos = function (username, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } + // List user repositories + // ------- - var url = '/users/' + username + '/repos'; - var params = []; + this.userRepos = function(username, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } - params.push('type=' + encodeURIComponent(options.type || 'all')); - params.push('sort=' + encodeURIComponent(options.sort || 'updated')); - params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore + var url = '/users/' + username + '/repos'; + var params = []; - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } + params.push('type=' + encodeURIComponent(options.type || 'all')); + params.push('sort=' + encodeURIComponent(options.sort || 'updated')); + params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore - url += '?' + params.join('&'); + if (options.page) { + params.push('page=' + encodeURIComponent(options.page)); + } - _requestAllPages(url, cb); - }; + url += '?' + params.join('&'); - // List user starred repositories - // ------- + _requestAllPages(url, !!options.page, cb); + }; - this.userStarred = function (username, cb) { - // Github does not always honor the 1000 limit so we want to iterate over the data set. - _requestAllPages('/users/' + username + '/starred?type=all&per_page=100', cb); - }; + // List user starred repositories + // ------- - // List a user's gists - // ------- + this.userStarred = function(username, cb) { + // Github does not always honor the 1000 limit so we want to iterate over the data set. + var request = '/users/' + username + '/starred?type=all&per_page=100'; - this.userGists = function (username, cb) { - _request('GET', '/users/' + username + '/gists', null, cb); - }; + _requestAllPages(request, false, cb); + }; - // List organization repositories - // ------- + // List a user's gists + // ------- - this.orgRepos = function (orgname, cb) { - // Github does not always honor the 1000 limit so we want to iterate over the data set. - _requestAllPages('/orgs/' + orgname + '/repos?type=all&&page_num=1000&sort=updated&direction=desc', cb); - }; + this.userGists = function(username, cb) { + _request('GET', '/users/' + username + '/gists', null, cb); + }; - // Follow user - // ------- + // List organization repositories + // ------- - this.follow = function (username, cb) { - _request('PUT', '/user/following/' + username, null, cb); - }; + this.orgRepos = function(orgname, cb) { + // Github does not always honor the 1000 limit so we want to iterate over the data set. + var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc'; - // Unfollow user - // ------- + _requestAllPages(request, false, cb); + }; - this.unfollow = function (username, cb) { - _request('DELETE', '/user/following/' + username, null, cb); - }; + this.follow = function(username, cb) { + _request('PUT', '/user/following/' + username, null, cb); + }; - // Create a repo - // ------- - this.createRepo = function (options, cb) { - _request('POST', '/user/repos', options, cb); - }; + // Unfollow user + // ------- + + this.unfollow = function(username, cb) { + _request('DELETE', '/user/following/' + username, null, cb); }; - Github.Organization = function () { - // Create an Organization repo - // ------- - this.createRepo = function (options, cb) { - _request('POST', '/orgs/' + options.orgname + '/repos', options, cb); - }; + // Create a repo + // ------- + this.createRepo = function(options, cb) { + _request('POST', '/user/repos', options, cb); }; + }; - // Repository API - // ======= + Github.Organization = function() { + // Create an Organization repo + // ------- + this.createRepo = function(options, cb) { + _request('POST', '/orgs/' + options.orgname + '/repos', options, cb); + }; + }; - Github.Repository = function (options) { - var repo = options.name; - var user = options.user; - var fullname = options.fullname; + // Repository API + // ======= - var that = this; - var repoPath; + Github.Repository = function(options) { + var repo = options.name; + var user = options.user; + var fullname = options.fullname; - if (fullname) { - repoPath = '/repos/' + fullname; - } else { - repoPath = '/repos/' + user + '/' + repo; - } + var that = this; + var repoPath; - var currentTree = { - branch: null, - sha: null - }; + if (fullname) { + repoPath = '/repos/' + fullname; + } else { + repoPath = '/repos/' + user + '/' + repo; + } - // Uses the cache if branch has not been changed - // ------- + var currentTree = { + branch: null, + sha: null + }; - function updateTree(branch, cb) { - if (branch === currentTree.branch && currentTree.sha) { - return cb(null, currentTree.sha); - } + // Uses the cache if branch has not been changed + // ------- - that.getRef('heads/' + branch, function (err, sha) { - currentTree.branch = branch; - currentTree.sha = sha; - cb(err, sha); - }); + function updateTree(branch, cb) { + if (branch === currentTree.branch && currentTree.sha) { + return cb(null, currentTree.sha); } - // Get a particular reference - // ------- + that.getRef('heads/' + branch, function(err, sha) { + currentTree.branch = branch; + currentTree.sha = sha; + cb(err, sha); + }); + } - this.getRef = function (ref, cb) { - _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) { - if (err) { - return cb(err); - } + // Get a particular reference + // ------- - cb(null, res.object.sha, xhr); - }); - }; + this.getRef = function(ref, cb) { + _request('GET', repoPath + '/git/refs/' + ref, null, function(err, res, xhr) { + if (err) { + return cb(err); + } - // Create a new reference - // -------- - // - // { - // "ref": "refs/heads/my-new-branch-name", - // "sha": "827efc6d56897b048c772eb4087f854f46256132" - // } + cb(null, res.object.sha, xhr); + }); + }; - this.createRef = function (options, cb) { - _request('POST', repoPath + '/git/refs', options, cb); - }; + // Create a new reference + // -------- + // + // { + // "ref": "refs/heads/my-new-branch-name", + // "sha": "827efc6d56897b048c772eb4087f854f46256132" + // } - // Delete a reference - // -------- - // - // Repo.deleteRef('heads/gh-pages') - // repo.deleteRef('tags/v1.0') + this.createRef = function(options, cb) { + _request('POST', repoPath + '/git/refs', options, cb); + }; - this.deleteRef = function (ref, cb) { - _request('DELETE', repoPath + '/git/refs/' + ref, options, cb); - }; + // Delete a reference + // -------- + // + // Repo.deleteRef('heads/gh-pages') + // repo.deleteRef('tags/v1.0') - // Delete a repo - // -------- + this.deleteRef = function(ref, cb) { + _request('DELETE', repoPath + '/git/refs/' + ref, options, cb); + }; - this.deleteRepo = function (cb) { - _request('DELETE', repoPath, options, cb); - }; + // Delete a repo + // -------- - // List all tags of a repository - // ------- + this.deleteRepo = function(cb) { + _request('DELETE', repoPath, options, cb); + }; - this.listTags = function (cb) { - _request('GET', repoPath + '/tags', null, cb); - }; + // List all tags of a repository + // ------- - // List all pull requests of a respository - // ------- + this.listTags = function(cb) { + _request('GET', repoPath + '/tags', null, cb); + }; - this.listPulls = function (options, cb) { - options = options || {}; - var url = repoPath + '/pulls'; - var params = []; + // List all pull requests of a respository + // ------- - if (typeof options === 'string') { - // Backward compatibility - params.push('state=' + options); - } else { - if (options.state) { - params.push('state=' + encodeURIComponent(options.state)); - } + this.listPulls = function(options, cb) { + options = options || {}; + var url = repoPath + '/pulls'; + var params = []; - if (options.head) { - params.push('head=' + encodeURIComponent(options.head)); - } + if (typeof options === 'string') { + // Backward compatibility + params.push('state=' + options); + } else { + if (options.state) { + params.push('state=' + encodeURIComponent(options.state)); + } - if (options.base) { - params.push('base=' + encodeURIComponent(options.base)); - } + if (options.head) { + params.push('head=' + encodeURIComponent(options.head)); + } - if (options.sort) { - params.push('sort=' + encodeURIComponent(options.sort)); - } + if (options.base) { + params.push('base=' + encodeURIComponent(options.base)); + } - if (options.direction) { - params.push('direction=' + encodeURIComponent(options.direction)); - } + if (options.sort) { + params.push('sort=' + encodeURIComponent(options.sort)); + } - if (options.page) { - params.push('page=' + options.page); - } + if (options.direction) { + params.push('direction=' + encodeURIComponent(options.direction)); + } - if (options.per_page) { - params.push('per_page=' + options.per_page); - } + if (options.page) { + params.push('page=' + options.page); } - if (params.length > 0) { - url += '?' + params.join('&'); + if (options.per_page) { + params.push('per_page=' + options.per_page); } + } - _request('GET', url, null, cb); - }; + if (params.length > 0) { + url += '?' + params.join('&'); + } - // Gets details for a specific pull request - // ------- + _request('GET', url, null, cb); + }; - this.getPull = function (number, cb) { - _request('GET', repoPath + '/pulls/' + number, null, cb); - }; + // Gets details for a specific pull request + // ------- - // Retrieve the changes made between base and head - // ------- + this.getPull = function(number, cb) { + _request('GET', repoPath + '/pulls/' + number, null, cb); + }; - this.compare = function (base, head, cb) { - _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb); - }; + // Retrieve the changes made between base and head + // ------- - // List all branches of a repository - // ------- + this.compare = function(base, head, cb) { + _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb); + }; - this.listBranches = function (cb) { - _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) { - if (err) { - return cb(err); - } + // List all branches of a repository + // ------- - heads = heads.map(function (head) { - return head.ref.replace(/^refs\/heads\//, ''); - }); + this.listBranches = function(cb) { + _request('GET', repoPath + '/git/refs/heads', null, function(err, heads, xhr) { + if (err) { + return cb(err); + } - cb(null, heads, xhr); + heads = heads.map(function(head) { + return head.ref.replace(/^refs\/heads\//, ''); }); - }; - - // Retrieve the contents of a blob - // ------- - - this.getBlob = function (sha, cb) { - _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw'); - }; - // For a given file path, get the corresponding sha (blob for files, tree for dirs) - // ------- - - this.getCommit = function (branch, sha, cb) { - _request('GET', repoPath + '/git/commits/' + sha, null, cb); - }; - - // For a given file path, get the corresponding sha (blob for files, tree for dirs) - // ------- + cb(null, heads, xhr); + }); + }; - this.getSha = function (branch, path, cb) { - if (!path || path === '') { - return that.getRef('heads/' + branch, cb); - } + // Retrieve the contents of a blob + // ------- - _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), - null, function (err, pathContent, xhr) { - if (err) { - return cb(err); - } + this.getBlob = function(sha, cb) { + _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw'); + }; - cb(null, pathContent.sha, xhr); - }); - }; + // For a given file path, get the corresponding sha (blob for files, tree for dirs) + // ------- - // Get the statuses for a particular SHA - // ------- + this.getCommit = function(branch, sha, cb) { + _request('GET', repoPath + '/git/commits/' + sha, null, cb); + }; - this.getStatuses = function (sha, cb) { - _request('GET', repoPath + '/statuses/' + sha, null, cb); - }; + // For a given file path, get the corresponding sha (blob for files, tree for dirs) + // ------- - // Retrieve the tree a commit points to - // ------- + this.getSha = function(branch, path, cb) { + if (!path || path === '') { + return that.getRef('heads/' + branch, cb); + } - this.getTree = function (tree, cb) { - _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) { + _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), + null, function(err, pathContent, xhr) { if (err) { return cb(err); } - cb(null, res.tree, xhr); + cb(null, pathContent.sha, xhr); }); - }; + }; - // Post a new blob object, getting a blob SHA back - // ------- + // Get the statuses for a particular SHA + // ------- + + this.getStatuses = function(sha, cb) { + _request('GET', repoPath + '/statuses/' + sha, null, cb); + }; + + // Retrieve the tree a commit points to + // ------- + + this.getTree = function(tree, cb) { + _request('GET', repoPath + '/git/trees/' + tree, null, function(err, res, xhr) { + if (err) { + return cb(err); + } - this.postBlob = function (content, cb) { - if (typeof content === 'string') { + cb(null, res.tree, xhr); + }); + }; + + // Post a new blob object, getting a blob SHA back + // ------- + + this.postBlob = function(content, cb) { + if (typeof content === 'string') { + content = { + content: Utf8.encode(content), + encoding: 'utf-8' + }; + } else { + if (typeof Buffer !== 'undefined' && content instanceof Buffer) { + // When we're in Node content = { - content: content, - encoding: 'utf-8' + content: content.toString('base64'), + encoding: 'base64' }; - } else { + } else if (typeof Blob !== 'undefined' && content instanceof Blob) { content = { content: b64encode(content), encoding: 'base64' }; + } else { + throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)'); } + } - _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) { - if (err) { - return cb(err); - } + _request('POST', repoPath + '/git/blobs', content, function(err, res, xhr) { + if (err) { + return cb(err); + } - cb(null, res.sha, xhr); - }); + cb(null, res.sha, xhr); + }); + }; + + // Update an existing tree adding a new blob object getting a tree SHA back + // ------- + + this.updateTree = function(baseTree, path, blob, cb) { + var data = { + base_tree: baseTree, + tree: [ + { + path: path, + mode: '100644', + type: 'blob', + sha: blob + } + ] }; - // Update an existing tree adding a new blob object getting a tree SHA back - // ------- + _request('POST', repoPath + '/git/trees', data, function(err, res, xhr) { + if (err) { + return cb(err); + } - this.updateTree = function (baseTree, path, blob, cb) { - var data = { - base_tree: baseTree, - tree: [ - { - path: path, - mode: '100644', - type: 'blob', - sha: blob - } - ] - }; + cb(null, res.sha, xhr); + }); + }; - _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) { - if (err) { - return cb(err); - } + // Post a new tree object having a file path pointer replaced + // with a new blob SHA getting a tree SHA back + // ------- - cb(null, res.sha, xhr); - }); - }; + this.postTree = function(tree, cb) { + _request('POST', repoPath + '/git/trees', { + tree: tree + }, function(err, res, xhr) { + if (err) { + return cb(err); + } - // Post a new tree object having a file path pointer replaced - // with a new blob SHA getting a tree SHA back - // ------- + cb(null, res.sha, xhr); + }); + }; - this.postTree = function (tree, cb) { - _request('POST', repoPath + '/git/trees', { - tree: tree - }, function (err, res, xhr) { - if (err) { - return cb(err); - } + // Create a new commit object with the current commit SHA as the parent + // and the new tree SHA, getting a commit SHA back + // ------- - cb(null, res.sha, xhr); - }); - }; + this.commit = function(parent, tree, message, cb) { + var user = new Github.User(); - // Create a new commit object with the current commit SHA as the parent - // and the new tree SHA, getting a commit SHA back - // ------- + user.show(null, function(err, userData) { + if (err) { + return cb(err); + } - this.commit = function (parent, tree, message, cb) { - var user = new Github.User(); + var data = { + message: message, + author: { + name: options.user, + email: userData.email + }, + parents: [ + parent + ], + tree: tree + }; - user.show(null, function (err, userData) { + _request('POST', repoPath + '/git/commits', data, function(err, res, xhr) { if (err) { return cb(err); } - var data = { - message: message, - author: { - name: options.user, - email: userData.email - }, - parents: [ - parent - ], - tree: tree - }; - - _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) { - if (err) { - return cb(err); - } - - currentTree.sha = res.sha; // Update latest commit + currentTree.sha = res.sha; // Update latest commit - cb(null, res.sha, xhr); - }); + cb(null, res.sha, xhr); }); - }; + }); + }; - // Update the reference of your head to point to the new commit SHA - // ------- + // Update the reference of your head to point to the new commit SHA + // ------- - this.updateHead = function (head, commit, cb) { - _request('PATCH', repoPath + '/git/refs/heads/' + head, { - sha: commit - }, cb); - }; + this.updateHead = function(head, commit, cb) { + _request('PATCH', repoPath + '/git/refs/heads/' + head, { + sha: commit + }, cb); + }; - // Show repository information - // ------- + // Show repository information + // ------- - this.show = function (cb) { - _request('GET', repoPath, null, cb); - }; + this.show = function(cb) { + _request('GET', repoPath, null, cb); + }; - // Show repository contributors - // ------- + // Show repository contributors + // ------- - this.contributors = function (cb, retry) { - retry = retry || 1000; - var that = this; + this.contributors = function(cb, retry) { + retry = retry || 1000; + var that = this; - _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) { - if (err) { - return cb(err); - } + _request('GET', repoPath + '/stats/contributors', null, function(err, data, xhr) { + if (err) { + return cb(err); + } - if (xhr.status === 202) { - setTimeout( - function () { - that.contributors(cb, retry); - }, - retry - ); - } else { - cb(err, data, xhr); - } - }); - }; + if (xhr.status === 202) { + setTimeout( + function() { + that.contributors(cb, retry); + }, + retry + ); + } else { + cb(err, data, xhr); + } + }); + }; - // Show repository collaborators - // ------- + // Show repository collaborators + // ------- - this.collaborators = function (cb) { - _request('GET', repoPath + '/collaborators', null, cb); - }; + this.collaborators = function(cb) { + _request('GET', repoPath + '/collaborators', null, cb); + }; - // Check whether user is a collaborator on the repository - // ------- + // Check whether user is a collaborator on the repository + // ------- - this.isCollaborator = function (username, cb) { - _request('GET', repoPath + '/collaborators/' + username, null, cb); - }; + this.isCollaborator = function(username, cb) { + _request('GET', repoPath + '/collaborators/' + username, null, cb); + }; - // Get contents - // -------- + // Get contents + // -------- - this.contents = function (ref, path, cb) { - path = encodeURI(path); - _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), { - ref: ref - }, cb); - }; + this.contents = function(ref, path, cb) { + path = encodeURI(path); + _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), { + ref: ref + }, cb); + }; - // Fork repository - // ------- + // Fork repository + // ------- - this.fork = function (cb) { - _request('POST', repoPath + '/forks', null, cb); - }; + this.fork = function(cb) { + _request('POST', repoPath + '/forks', null, cb); + }; - // List forks - // -------- + // List forks + // -------- - this.listForks = function (cb) { - _request('GET', repoPath + '/forks', null, cb); - }; + this.listForks = function(cb) { + _request('GET', repoPath + '/forks', null, cb); + }; - // Branch repository - // -------- + // Branch repository + // -------- - this.branch = function (oldBranch, newBranch, cb) { - if (arguments.length === 2 && typeof arguments[1] === 'function') { - cb = newBranch; - newBranch = oldBranch; - oldBranch = 'master'; + this.branch = function(oldBranch, newBranch, cb) { + if (arguments.length === 2 && typeof arguments[1] === 'function') { + cb = newBranch; + newBranch = oldBranch; + oldBranch = 'master'; + } + + this.getRef('heads/' + oldBranch, function(err, ref) { + if (err && cb) { + return cb(err); } - this.getRef('heads/' + oldBranch, function (err, ref) { - if (err && cb) { - return cb(err); - } + that.createRef({ + ref: 'refs/heads/' + newBranch, + sha: ref + }, cb); + }); + }; - that.createRef({ - ref: 'refs/heads/' + newBranch, - sha: ref - }, cb); - }); - }; + // Create pull request + // -------- - // Create pull request - // -------- + this.createPullRequest = function(options, cb) { + _request('POST', repoPath + '/pulls', options, cb); + }; - this.createPullRequest = function (options, cb) { - _request('POST', repoPath + '/pulls', options, cb); - }; + // List hooks + // -------- - // List hooks - // -------- + this.listHooks = function(cb) { + _request('GET', repoPath + '/hooks', null, cb); + }; - this.listHooks = function (cb) { - _request('GET', repoPath + '/hooks', null, cb); - }; + // Get a hook + // -------- - // Get a hook - // -------- + this.getHook = function(id, cb) { + _request('GET', repoPath + '/hooks/' + id, null, cb); + }; - this.getHook = function (id, cb) { - _request('GET', repoPath + '/hooks/' + id, null, cb); - }; + // Create a hook + // -------- - // Create a hook - // -------- + this.createHook = function(options, cb) { + _request('POST', repoPath + '/hooks', options, cb); + }; - this.createHook = function (options, cb) { - _request('POST', repoPath + '/hooks', options, cb); - }; + // Edit a hook + // -------- - // Edit a hook - // -------- + this.editHook = function(id, options, cb) { + _request('PATCH', repoPath + '/hooks/' + id, options, cb); + }; - this.editHook = function (id, options, cb) { - _request('PATCH', repoPath + '/hooks/' + id, options, cb); - }; + // Delete a hook + // -------- - // Delete a hook - // -------- + this.deleteHook = function(id, cb) { + _request('DELETE', repoPath + '/hooks/' + id, null, cb); + }; - this.deleteHook = function (id, cb) { - _request('DELETE', repoPath + '/hooks/' + id, null, cb); - }; + // Read file at given path + // ------- - // Read file at given path - // ------- + this.read = function(branch, path, cb) { + _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), + null, cb, true); + }; - this.read = function (branch, path, cb) { - _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), - null, cb, true); - }; + // Remove a file + // ------- - // Remove a file - // ------- + this.remove = function(branch, path, cb) { + that.getSha(branch, path, function(err, sha) { + if (err) { + return cb(err); + } - this.remove = function (branch, path, cb) { - that.getSha(branch, path, function (err, sha) { - if (err) { - return cb(err); - } + _request('DELETE', repoPath + '/contents/' + path, { + message: path + ' is removed', + sha: sha, + branch: branch + }, cb); + }); + }; - _request('DELETE', repoPath + '/contents/' + path, { - message: path + ' is removed', - sha: sha, - branch: branch - }, cb); - }); - }; + // Alias for repo.remove for backwards comapt. + // ------- + this.delete = this.remove; - // Alias for repo.remove for backwards comapt. - // ------- - this.delete = this.remove; - - // Move a file to a new location - // ------- - - this.move = function (branch, path, newPath, cb) { - updateTree(branch, function (err, latestCommit) { - that.getTree(latestCommit + '?recursive=true', function (err, tree) { - // Update Tree - tree.forEach(function (ref) { - if (ref.path === path) { - ref.path = newPath; - } - - if (ref.type === 'tree') { - delete ref.sha; - } - }); + // Move a file to a new location + // ------- + + this.move = function(branch, path, newPath, cb) { + updateTree(branch, function(err, latestCommit) { + that.getTree(latestCommit + '?recursive=true', function(err, tree) { + // Update Tree + tree.forEach(function(ref) { + if (ref.path === path) { + ref.path = newPath; + } - that.postTree(tree, function (err, rootTree) { - that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) { - that.updateHead(branch, commit, cb); - }); + if (ref.type === 'tree') { + delete ref.sha; + } + }); + + that.postTree(tree, function(err, rootTree) { + that.commit(latestCommit, rootTree, 'Deleted ' + path, function(err, commit) { + that.updateHead(branch, commit, cb); }); }); }); - }; - - // Write file contents to a given branch and path - // ------- - - this.write = function (branch, path, content, message, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - that.getSha(branch, encodeURI(path), function (err, sha) { - var writeOptions = { - message: message, - content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content, - branch: branch, - committer: options && options.committer ? options.committer : undefined, - author: options && options.author ? options.author : undefined - }; - - // If no error, we set the sha to overwrite an existing file - if (!(err && err.error !== 404)) { - writeOptions.sha = sha; - } + }); + }; - _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb); - }); - }; + // Write file contents to a given branch and path + // ------- - // List commits on a repository. Takes an object of optional parameters: - // sha: SHA or branch to start listing commits from - // path: Only commits containing this file path will be returned - // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address - // since: ISO 8601 date - only commits after this date will be returned - // until: ISO 8601 date - only commits before this date will be returned - // ------- - - this.getCommits = function (options, cb) { - options = options || {}; - var url = repoPath + '/commits'; - var params = []; - - if (options.sha) { - params.push('sha=' + encodeURIComponent(options.sha)); - } + this.write = function(branch, path, content, message, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } - if (options.path) { - params.push('path=' + encodeURIComponent(options.path)); - } + that.getSha(branch, encodeURI(path), function(err, sha) { + var writeOptions = { + message: message, + content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content, + branch: branch, + committer: options && options.committer ? options.committer : undefined, + author: options && options.author ? options.author : undefined + }; - if (options.author) { - params.push('author=' + encodeURIComponent(options.author)); + // If no error, we set the sha to overwrite an existing file + if (!(err && err.error !== 404)) { + writeOptions.sha = sha; } - if (options.since) { - var since = options.since; + _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb); + }); + }; - if (since.constructor === Date) { - since = since.toISOString(); - } + // List commits on a repository. Takes an object of optional parameters: + // sha: SHA or branch to start listing commits from + // path: Only commits containing this file path will be returned + // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address + // since: ISO 8601 date - only commits after this date will be returned + // until: ISO 8601 date - only commits before this date will be returned + // ------- + + this.getCommits = function(options, cb) { + options = options || {}; + var url = repoPath + '/commits'; + var params = []; + + if (options.sha) { + params.push('sha=' + encodeURIComponent(options.sha)); + } - params.push('since=' + encodeURIComponent(since)); - } + if (options.path) { + params.push('path=' + encodeURIComponent(options.path)); + } - if (options.until) { - var until = options.until; + if (options.author) { + params.push('author=' + encodeURIComponent(options.author)); + } - if (until.constructor === Date) { - until = until.toISOString(); - } + if (options.since) { + var since = options.since; - params.push('until=' + encodeURIComponent(until)); + if (since.constructor === Date) { + since = since.toISOString(); } - if (options.page) { - params.push('page=' + options.page); - } + params.push('since=' + encodeURIComponent(since)); + } - if (options.perpage) { - params.push('per_page=' + options.perpage); - } + if (options.until) { + var until = options.until; - if (params.length > 0) { - url += '?' + params.join('&'); + if (until.constructor === Date) { + until = until.toISOString(); } - _request('GET', url, null, cb); - }; + params.push('until=' + encodeURIComponent(until)); + } - // Check if a repository is starred. - // -------- + if (options.page) { + params.push('page=' + options.page); + } - this.isStarred = function(owner, repository, cb) { - _request('GET', '/user/starred/' + owner + '/' + repository, null, cb); - }; + if (options.perpage) { + params.push('per_page=' + options.perpage); + } - // Star a repository. - // -------- + if (params.length > 0) { + url += '?' + params.join('&'); + } - this.star = function(owner, repository, cb) { - _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); - }; + _request('GET', url, null, cb); + }; - // Unstar a repository. - // -------- + // Check if a repository is starred. + // -------- - this.unstar = function(owner, repository, cb) { - _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); - }; + this.isStarred = function(owner, repository, cb) { + _request('GET', '/user/starred/' + owner + '/' + repository, null, cb); + }; - // Create a new release - // -------- + // Star a repository. + // -------- - this.createRelease = function(options, cb) { - _request('POST', repoPath + '/releases', options, cb); - }; + this.star = function(owner, repository, cb) { + _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); + }; - // Edit a release - // -------- + // Unstar a repository. + // -------- - this.editRelease = function(id, options, cb) { - _request('PATCH', repoPath + '/releases/' + id, options, cb); - }; + this.unstar = function(owner, repository, cb) { + _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); + }; - // Get a single release - // -------- + // Create a new release + // -------- - this.getRelease = function(id, cb) { - _request('GET', repoPath + '/releases/' + id, null, cb); - }; + this.createRelease = function(options, cb) { + _request('POST', repoPath + '/releases', options, cb); + }; - // Remove a release - // -------- + // Edit a release + // -------- - this.deleteRelease = function(id, cb) { - _request('DELETE', repoPath + '/releases/' + id, null, cb); - }; + this.editRelease = function(id, options, cb) { + _request('PATCH', repoPath + '/releases/' + id, options, cb); }; - // Gists API - // ======= + // Get a single release + // -------- - Github.Gist = function (options) { - var id = options.id; - var gistPath = '/gists/' + id; + this.getRelease = function(id, cb) { + _request('GET', repoPath + '/releases/' + id, null, cb); + }; - // Read the gist - // -------- + // Remove a release + // -------- - this.read = function (cb) { - _request('GET', gistPath, null, cb); - }; + this.deleteRelease = function(id, cb) { + _request('DELETE', repoPath + '/releases/' + id, null, cb); + }; + }; - // Create the gist - // -------- - // { - // "description": "the description for this gist", - // "public": true, - // "files": { - // "file1.txt": { - // "content": "String file contents" - // } - // } - // } - - this.create = function (options, cb) { - _request('POST', '/gists', options, cb); - }; + // Gists API + // ======= - // Delete the gist - // -------- + Github.Gist = function(options) { + var id = options.id; + var gistPath = '/gists/' + id; - this.delete = function (cb) { - _request('DELETE', gistPath, null, cb); - }; + // Read the gist + // -------- - // Fork a gist - // -------- + this.read = function(cb) { + _request('GET', gistPath, null, cb); + }; - this.fork = function (cb) { - _request('POST', gistPath + '/fork', null, cb); - }; + // Create the gist + // -------- + // { + // "description": "the description for this gist", + // "public": true, + // "files": { + // "file1.txt": { + // "content": "String file contents" + // } + // } + // } + + this.create = function(options, cb) { + _request('POST', '/gists', options, cb); + }; - // Update a gist with the new stuff - // -------- + // Delete the gist + // -------- - this.update = function (options, cb) { - _request('PATCH', gistPath, options, cb); - }; + this.delete = function(cb) { + _request('DELETE', gistPath, null, cb); + }; - // Star a gist - // -------- + // Fork a gist + // -------- - this.star = function (cb) { - _request('PUT', gistPath + '/star', null, cb); - }; + this.fork = function(cb) { + _request('POST', gistPath + '/fork', null, cb); + }; - // Untar a gist - // -------- + // Update a gist with the new stuff + // -------- - this.unstar = function (cb) { - _request('DELETE', gistPath + '/star', null, cb); - }; + this.update = function(options, cb) { + _request('PATCH', gistPath, options, cb); + }; - // Check if a gist is starred - // -------- + // Star a gist + // -------- - this.isStarred = function (cb) { - _request('GET', gistPath + '/star', null, cb); - }; + this.star = function(cb) { + _request('PUT', gistPath + '/star', null, cb); }; - // Issues API - // ========== + // Untar a gist + // -------- - Github.Issue = function (options) { - var path = '/repos/' + options.user + '/' + options.repo + '/issues'; + this.unstar = function(cb) { + _request('DELETE', gistPath + '/star', null, cb); + }; - this.create = function(options, cb) { - _request('POST', path, options, cb); - }; + // Check if a gist is starred + // -------- - this.list = function (options, cb) { - var query = []; + this.isStarred = function(cb) { + _request('GET', gistPath + '/star', null, cb); + }; + }; - for(var key in options) { - if (options.hasOwnProperty(key)) { - query.push(encodeURIComponent(key) + '=' + encodeURIComponent(options[key])); - } - } + // Issues API + // ========== - _requestAllPages(path + '?' + query.join('&'), cb); - }; + Github.Issue = function(options) { + var path = '/repos/' + options.user + '/' + options.repo + '/issues'; - this.comment = function (issue, comment, cb) { - _request('POST', issue.comments_url, { - body: comment - }, cb); - }; + this.create = function(options, cb) { + _request('POST', path, options, cb); + }; - this.edit = function (issue, options, cb) { - _request('PATCH', path + '/' + issue, options, cb); - }; + this.list = function(options, cb) { + var query = []; - this.get = function (issue, cb) { - _request('GET', path + '/' + issue, null, cb); - }; + Object.keys(options).forEach(function(option) { + query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option])); + }); + + _requestAllPages(path + '?' + query.join('&'), !!options.page, cb); }; - // Search API - // ========== + this.comment = function(issue, comment, cb) { + _request('POST', issue.comments_url, { + body: comment + }, cb); + }; - Github.Search = function (options) { - var path = '/search/'; - var query = '?q=' + options.query; + this.edit = function(issue, options, cb) { + _request('PATCH', path + '/' + issue, options, cb); + }; - this.repositories = function (options, cb) { - _request('GET', path + 'repositories' + query, options, cb); - }; + this.get = function(issue, cb) { + _request('GET', path + '/' + issue, null, cb); + }; + }; - this.code = function (options, cb) { - _request('GET', path + 'code' + query, options, cb); - }; + // Search API + // ========== - this.issues = function (options, cb) { - _request('GET', path + 'issues' + query, options, cb); - }; + Github.Search = function(options) { + var path = '/search/'; + var query = '?q=' + options.query; - this.users = function (options, cb) { - _request('GET', path + 'users' + query, options, cb); - }; + this.repositories = function(options, cb) { + _request('GET', path + 'repositories' + query, options, cb); }; - // Rate Limit API - // ========== + this.code = function(options, cb) { + _request('GET', path + 'code' + query, options, cb); + }; - Github.RateLimit = function() { - this.getRateLimit = function(cb) { - _request('GET', '/rate_limit', null, cb); - }; + this.issues = function(options, cb) { + _request('GET', path + 'issues' + query, options, cb); }; - return Github; + this.users = function(options, cb) { + _request('GET', path + 'users' + query, options, cb); + }; }; - // Top Level API - // ------- + // Rate Limit API + // ========== - Github.getIssues = function (user, repo) { - return new Github.Issue({ - user: user, - repo: repo - }); + Github.RateLimit = function() { + this.getRateLimit = function(cb) { + _request('GET', '/rate_limit', null, cb); + }; }; - Github.getRepo = function (user, repo) { - if (!repo) { - return new Github.Repository({ - fullname: user - }); - } else { - return new Github.Repository({ - user: user, - name: repo - }); - } - }; + return Github; +} + +// Top Level API +// ------- + +Github.getIssues = function(user, repo) { + return new Github.Issue({ + user: user, + repo: repo + }); +}; + +Github.getRepo = function(user, repo) { + if (!repo) { + return new Github.Repository({ + fullname: user + }); + } else { + return new Github.Repository({ + user: user, + name: repo + }); + } +}; - Github.getUser = function () { - return new Github.User(); - }; +Github.getUser = function() { + return new Github.User(); +}; - Github.getOrg = function () { - return new Github.Organization(); - }; +Github.getOrg = function() { + return new Github.Organization(); +}; - Github.getGist = function (id) { - return new Github.Gist({ - id: id - }); - }; +Github.getGist = function(id) { + return new Github.Gist({ + id: id + }); +}; - Github.getSearch = function (query) { - return new Github.Search({ - query: query - }); - }; +Github.getSearch = function(query) { + return new Github.Search({ + query: query + }); +}; - Github.getRateLimit = function() { - return new Github.RateLimit(); - }; +Github.getRateLimit = function() { + return new Github.RateLimit(); +}; - return Github; -})); +module.exports = Github; From bc6b2635f1002e2c166a4b1933c492bb5da441e7 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 2 Mar 2016 17:13:53 -0600 Subject: [PATCH 004/137] Restructure tests to run in mocha --- .editorconfig | 3 + .gitignore | 3 +- .jshintrc | 139 ++-- .travis.yml | 10 +- dist/github.bundle.min.js | 3 + dist/github.bundle.min.js.map | 1 + dist/github.js | 1136 +++++++++++++++++++++++++++++++++ dist/github.js.map | 1 + dist/github.min.js | 2 + dist/github.min.js.map | 1 + gulpfile.js | 184 ++---- package.json | 17 +- src/github.js | 2 +- test/.jshintrc | 9 + test/{ => fixtures}/gh.png | Bin test/fixtures/gist.json | 9 + test/fixtures/imageBlob.js | 55 ++ test/{ => fixtures}/user.json | 0 test/helpers.js | 49 ++ test/test.auth.js | 115 ++-- test/test.gist.js | 121 ++-- test/test.issue.js | 98 +-- test/test.rate-limit.js | 28 +- test/test.repo.js | 929 +++++++++++---------------- test/test.search.js | 43 +- test/test.user.js | 149 +---- 26 files changed, 2013 insertions(+), 1094 deletions(-) create mode 100644 dist/github.bundle.min.js create mode 100644 dist/github.bundle.min.js.map create mode 100644 dist/github.js create mode 100644 dist/github.js.map create mode 100644 dist/github.min.js create mode 100644 dist/github.min.js.map create mode 100644 test/.jshintrc rename test/{ => fixtures}/gh.png (100%) create mode 100644 test/fixtures/gist.json create mode 100644 test/fixtures/imageBlob.js rename test/{ => fixtures}/user.json (100%) create mode 100644 test/helpers.js diff --git a/.editorconfig b/.editorconfig index 101a559e..321b598f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,5 +8,8 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true +[*.yml] +indent_size = 2 + [*.md] trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index 1aacec2f..23179d4d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,7 @@ .idea node_modules/ coverage/ -dist/*.js -dist/*.map +.zuulrc npm-debug.log sauce.json diff --git a/.jshintrc b/.jshintrc index d7c494f7..509fef3c 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,92 +1,65 @@ { - // JSHint Default Configuration File (as on JSHint website) - // See http://jshint.com/docs/ for more details - - "maxerr" : 50, // {int} Maximum error before stopping + "maxerr" : 50, // Enforcing - "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) - "camelcase" : false, // true: Identifiers must be in camelCase - "curly" : false, // true: Require {} for every new block or scope - "eqeqeq" : true, // true: Require triple equals (===) for comparison - "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() - "freeze" : true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc. - "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` - "indent" : 2, // {int} Number of spaces to use for indentation - "latedef" : false, // true: Require variables/functions to be defined before being used - "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()` - "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` - "noempty" : true, // true: Prohibit use of empty blocks - "nonbsp" : true, // true: Prohibit "non-breaking whitespace" characters. - "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) - "plusplus" : false, // true: Prohibit use of `++` & `--` - "quotmark" : false, // Quotation mark consistency: - // false : do nothing (default) - // true : ensure whatever is used is consistent - // "single" : require single quotes - // "double" : require double quotes - "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) - "unused" : true, // true: Require all defined variables be used - "strict" : true, // true: Requires all functions run in ES5 Strict Mode - "maxparams" : false, // {int} Max number of formal params allowed per function - "maxdepth" : false, // {int} Max depth of nested blocks (within functions) - "maxstatements" : false, // {int} Max number statements per function - "maxcomplexity" : false, // {int} Max cyclomatic complexity per function - "maxlen" : false, // {int} Max number of characters per line + "bitwise" : true, + "camelcase" : false, + "curly" : false, + "eqeqeq" : true, + "forin" : true, + "freeze" : true, + "immed" : false, + "indent" : 2, + "latedef" : false, + "newcap" : false, + "noarg" : true, + "noempty" : true, + "nonbsp" : true, + "nonew" : false, + "plusplus" : false, + "quotmark" : false, + "undef" : true, + "unused" : true, + "strict" : true, + "maxparams" : false, + "maxdepth" : false, + "maxstatements" : false, + "maxcomplexity" : false, + "maxlen" : false, // Relaxing - "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) - "boss" : false, // true: Tolerate assignments where comparisons would be expected - "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. - "eqnull" : false, // true: Tolerate use of `== null` - "es5" : false, // true: Allow ES5 syntax (ex: getters and setters) - "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`) - "moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) - // (ex: `for each`, multiple try/catch, function expression…) - "evil" : false, // true: Tolerate use of `eval` and `new Function()` - "expr" : false, // true: Tolerate `ExpressionStatement` as Programs - "funcscope" : false, // true: Tolerate defining variables inside control statements - "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') - "iterator" : false, // true: Tolerate using the `__iterator__` property - "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block - "laxbreak" : false, // true: Tolerate possibly unsafe line breakings - "laxcomma" : false, // true: Tolerate comma-first style coding - "loopfunc" : false, // true: Tolerate functions being defined in loops - "multistr" : false, // true: Tolerate multi-line strings - "noyield" : false, // true: Tolerate generator functions with no yield statement in them. - "notypeof" : false, // true: Tolerate invalid typeof operator values - "proto" : false, // true: Tolerate using the `__proto__` property - "scripturl" : false, // true: Tolerate script-targeted URLs - "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` - "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation - "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` - "validthis" : false, // true: Tolerate using this in a non-constructor function + "asi" : false, + "boss" : false, + "debug" : false, + "eqnull" : false, + "es5" : false, + "esnext" : false, + "moz" : false, + "evil" : false, + "expr" : false, + "funcscope" : false, + "globalstrict" : false, + "iterator" : false, + "lastsemic" : false, + "laxbreak" : false, + "laxcomma" : false, + "loopfunc" : false, + "multistr" : false, + "noyield" : false, + "notypeof" : false, + "proto" : false, + "scripturl" : false, + "shadow" : false, + "sub" : false, + "supernew" : false, + "validthis" : false, - // Environments - "browser" : true, // Web Browser (window, document, etc) - "browserify" : false, // Browserify (node.js code in the browser) - "couch" : false, // CouchDB - "devel" : true, // Development/debugging (alert, confirm, etc) - "dojo" : false, // Dojo Toolkit - "jasmine" : false, // Jasmine - "jquery" : false, // jQuery - "mocha" : true, // Mocha - "mootools" : false, // MooTools - "node" : true, // Node.js - "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) - "prototypejs" : false, // Prototype and Scriptaculous - "qunit" : false, // QUnit - "rhino" : false, // Rhino - "shelljs" : false, // ShellJS - "worker" : false, // Web Workers - "wsh" : false, // Windows Scripting Host - "yui" : false, // Yahoo User Interface + "browser" : true, + "devel" : true, + "node" : true, - // Custom Globals "globals" : { - "require": false, - "define": false, - "escape": false, - "should": false - } // additional predefined global variables + "require" : false, + "define" : false + } } diff --git a/.travis.yml b/.travis.yml index 88181684..67df9cb4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,10 +3,9 @@ language: node_js sudo: false node_js: - - "4.1" - - "4.0" + - "5.7" + - "4.3" - "0.12" - - "0.11" - "0.10" cache: @@ -18,6 +17,5 @@ before_install: script: - gulp lint - - gulp test:ci - - mocha test/ - - npm run-script codecov + - gulp test:mocha + - npm run codecov diff --git a/dist/github.bundle.min.js b/dist/github.bundle.min.js new file mode 100644 index 00000000..b53ebbbd --- /dev/null +++ b/dist/github.bundle.min.js @@ -0,0 +1,3 @@ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Github=t()}}(function(){var t;return function e(t,n,r){function o(s,u){if(!n[s]){if(!t[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in l)&&o.responseText?e:n)(o),l=null}},l.onerror=function(){n(new Error("Network Error")),l=null},r.isStandardBrowserEnv()){var g=t("./../helpers/cookies"),y=f.withCredentials||u(f.url)?g.read(f.xsrfCookieName):void 0;y&&(h[f.xsrfHeaderName]=y)}if("setRequestHeader"in l&&r.forEach(h,function(t,e){"undefined"==typeof c&&"content-type"===e.toLowerCase()?delete h[e]:l.setRequestHeader(e,t)}),f.withCredentials&&(l.withCredentials=!0),f.responseType)try{l.responseType=f.responseType}catch(v){if("json"!==l.responseType)throw v}r.isArrayBuffer(c)&&(c=new DataView(c)),l.send(c)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(t,e,n){"use strict";function r(t){this.defaults=i.merge({},t),this.interceptors={request:new u,response:new u}}var o=t("./defaults"),i=t("./utils"),s=t("./core/dispatchRequest"),u=t("./core/InterceptorManager"),a=t("./helpers/isAbsoluteURL"),f=t("./helpers/combineURLs"),c=t("./helpers/bind"),h=t("./helpers/transformData");r.prototype.request=function(t){"string"==typeof t&&(t=i.merge({url:arguments[0]},arguments[1])),t=i.merge(o,this.defaults,{method:"get"},t),t.baseURL&&!a(t.url)&&(t.url=f(t.baseURL,t.url)),t.withCredentials=t.withCredentials||this.defaults.withCredentials,t.data=h(t.data,t.headers,t.transformRequest),t.headers=i.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]});var e=[s,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)n=n.then(e.shift(),e.shift());return n};var l=new r(o),p=e.exports=c(r.prototype.request,l);p.create=function(t){return new r(t)},p.defaults=l.defaults,p.all=function(t){return Promise.all(t)},p.spread=t("./helpers/spread"),p.interceptors=l.interceptors,i.forEach(["delete","get","head"],function(t){r.prototype[t]=function(e,n){return this.request(i.merge(n||{},{method:t,url:e}))},p[t]=c(r.prototype[t],l)}),i.forEach(["post","put","patch"],function(t){r.prototype[t]=function(e,n,r){return this.request(i.merge(r||{},{method:t,url:e,data:n}))},p[t]=c(r.prototype[t],l)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(t,e,n){"use strict";function r(){this.handlers=[]}var o=t("./../utils");r.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},r.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},r.prototype.forEach=function(t){o.forEach(this.handlers,function(e){null!==e&&t(e)})},e.exports=r},{"./../utils":17}],5:[function(t,e,n){(function(n){"use strict";e.exports=function(e){return new Promise(function(r,o){try{var i;"function"==typeof e.adapter?i=e.adapter:"undefined"!=typeof XMLHttpRequest?i=t("../adapters/xhr"):"undefined"!=typeof n&&(i=t("../adapters/http")),"function"==typeof i&&i(r,o,e)}catch(s){o(s)}})}}).call(this,t("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:24}],6:[function(t,e,n){"use strict";var r=t("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};e.exports={transformRequest:[function(t,e){return r.isFormData(t)?t:r.isArrayBuffer(t)?t:r.isArrayBufferView(t)?t.buffer:!r.isObject(t)||r.isFile(t)||r.isBlob(t)?t:(r.isUndefined(e)||(r.forEach(e,function(t,n){"content-type"===n.toLowerCase()&&(e["Content-Type"]=t)}),r.isUndefined(e["Content-Type"])&&(e["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(t))}],transformResponse:[function(t){if("string"==typeof t){t=t.replace(o,"");try{t=JSON.parse(t)}catch(e){}}return t}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(t,e,n){"use strict";e.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");e=e<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",e.exports=o},{}],9:[function(t,e,n){"use strict";function r(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=t("./../utils");e.exports=function(t,e,n){if(!e)return t;var i;if(n)i=n(e);else{var s=[];o.forEach(e,function(t,e){null!==t&&"undefined"!=typeof t&&(o.isArray(t)&&(e+="[]"),o.isArray(t)||(t=[t]),o.forEach(t,function(t){o.isDate(t)?t=t.toISOString():o.isObject(t)&&(t=JSON.stringify(t)),s.push(r(e)+"="+r(t))}))}),i=s.join("&")}return i&&(t+=(-1===t.indexOf("?")?"?":"&")+i),t}},{"./../utils":17}],10:[function(t,e,n){"use strict";e.exports=function(t,e){return t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,"")}},{}],11:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=r.isStandardBrowserEnv()?function(){return{write:function(t,e,n,o,i,s){var u=[];u.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(t,e,n){"use strict";e.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},{}],13:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=r.isStandardBrowserEnv()?function(){function t(t){var e=t;return n&&(o.setAttribute("href",e),e=o.href),o.setAttribute("href",e),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var e,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return e=t(window.location.href),function(n){var o=r.isString(n)?t(n):n;return o.protocol===e.protocol&&o.host===e.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=function(t){var e,n,o,i={};return t?(r.forEach(t.split("\n"),function(t){o=t.indexOf(":"),e=r.trim(t.substr(0,o)).toLowerCase(),n=r.trim(t.substr(o+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(t,e,n){"use strict";e.exports=function(t){return function(e){return t.apply(null,e)}}},{}],16:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=function(t,e,n){return r.forEach(n,function(n){t=n(t,e)}),t}},{"./../utils":17}],17:[function(t,e,n){"use strict";function r(t){return"[object Array]"===m.call(t)}function o(t){return"[object ArrayBuffer]"===m.call(t)}function i(t){return"[object FormData]"===m.call(t)}function s(t){var e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer}function u(t){return"string"==typeof t}function a(t){return"number"==typeof t}function f(t){return"undefined"==typeof t}function c(t){return null!==t&&"object"==typeof t}function h(t){return"[object Date]"===m.call(t)}function l(t){return"[object File]"===m.call(t)}function p(t){return"[object Blob]"===m.call(t)}function d(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}function g(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function y(t,e){if(null!==t&&"undefined"!=typeof t)if("object"==typeof t||r(t)||(t=[t]),r(t))for(var n=0,o=t.length;o>n;n++)e.call(null,t[n],n,t);else for(var i in t)t.hasOwnProperty(i)&&e.call(null,t[i],i,t)}function v(){function t(t,n){"object"==typeof e[n]&&"object"==typeof t?e[n]=v(e[n],t):e[n]=t}for(var e={},n=0,r=arguments.length;r>n;n++)y(arguments[n],t);return e}var m=Object.prototype.toString;e.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:c,isUndefined:f,isDate:h,isFile:l,isBlob:p,isStandardBrowserEnv:g,forEach:y,merge:v,trim:d}},{}],18:[function(e,n,r){(function(e){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof e&&e;u.global!==u&&u.window!==u||(o=u);var a=function(t){this.message=t};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var f=function(t){throw new a(t)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=/[\t\n\f\r ]/g,l=function(t){t=String(t).replace(h,"");var e=t.length;e%4==0&&(t=t.replace(/==?$/,""),e=t.length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&f("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},p=function(t){t=String(t),/[^\0-\xFF]/.test(t)&&f("The string to be encoded contains characters outside of the Latin1 range.");for(var e,n,r,o,i=t.length%3,s="",u=-1,a=t.length-i;++u>18&63)+c.charAt(o>>12&63)+c.charAt(o>>6&63)+c.charAt(63&o);return 2==i?(e=t.charCodeAt(u)<<8,n=t.charCodeAt(++u),o=e+n,s+=c.charAt(o>>10)+c.charAt(o>>4&63)+c.charAt(o<<2&63)+"="):1==i&&(o=t.charCodeAt(u),s+=c.charAt(o>>2)+c.charAt(o<<4&63)+"=="),s},d={encode:p,decode:l,version:"0.1.0"};if("function"==typeof t&&"object"==typeof t.amd&&t.amd)t(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var g in d)d.hasOwnProperty(g)&&(i[g]=d[g]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,e,n){"use strict";function r(){var t,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=e.length;for(t=0;n>t;t++)a[t]=e[t];for(t=0;n>t;++t)f[e.charCodeAt(t)]=t;f["-".charCodeAt(0)]=62,f["_".charCodeAt(0)]=63}function o(t){var e,n,r,o,i,s,u=t.length;if(u%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===t[u-2]?2:"="===t[u-1]?1:0,s=new c(3*u/4-i),r=i>0?u-4:u;var a=0;for(e=0,n=0;r>e;e+=4,n+=3)o=f[t.charCodeAt(e)]<<18|f[t.charCodeAt(e+1)]<<12|f[t.charCodeAt(e+2)]<<6|f[t.charCodeAt(e+3)],s[a++]=(16711680&o)>>16,s[a++]=(65280&o)>>8,s[a++]=255&o;return 2===i?(o=f[t.charCodeAt(e)]<<2|f[t.charCodeAt(e+1)]>>4,s[a++]=255&o):1===i&&(o=f[t.charCodeAt(e)]<<10|f[t.charCodeAt(e+1)]<<4|f[t.charCodeAt(e+2)]>>2,s[a++]=o>>8&255,s[a++]=255&o),s}function i(t){return a[t>>18&63]+a[t>>12&63]+a[t>>6&63]+a[63&t]}function s(t,e,n){for(var r,o=[],s=e;n>s;s+=3)r=(t[s]<<16)+(t[s+1]<<8)+t[s+2],o.push(i(r));return o.join("")}function u(t){for(var e,n=t.length,r=n%3,o="",i=[],u=16383,f=0,c=n-r;c>f;f+=u)i.push(s(t,f,f+u>c?c:f+u));return 1===r?(e=t[n-1],o+=a[e>>2],o+=a[e<<4&63],o+="=="):2===r&&(e=(t[n-2]<<8)+t[n-1],o+=a[e>>10],o+=a[e>>4&63],o+=a[e<<2&63],o+="="),i.push(o),i.join("")}n.toByteArray=o,n.fromByteArray=u;var a=[],f=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array;r()},{}],20:[function(t,e,n){(function(e){"use strict";function r(){try{var t=new Uint8Array(1);return t.foo=function(){return 42},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function o(){return i.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(t){return this instanceof i?(i.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof t?s(this,t):"string"==typeof t?u(this,t,arguments.length>1?arguments[1]:"utf8"):a(this,t)):arguments.length>1?new i(t,arguments[1]):new i(t)}function s(t,e){if(t=g(t,0>e?0:0|y(e)),!i.TYPED_ARRAY_SUPPORT)for(var n=0;e>n;n++)t[n]=0;return t}function u(t,e,n){"string"==typeof n&&""!==n||(n="utf8");var r=0|m(e,n);return t=g(t,r),t.write(e,n),t}function a(t,e){if(i.isBuffer(e))return f(t,e);if($(e))return c(t,e);if(null==e)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(e.buffer instanceof ArrayBuffer)return h(t,e);if(e instanceof ArrayBuffer)return l(t,e)}return e.length?p(t,e):d(t,e)}function f(t,e){var n=0|y(e.length);return t=g(t,n),e.copy(t,0,0,n),t}function c(t,e){var n=0|y(e.length);t=g(t,n);for(var r=0;n>r;r+=1)t[r]=255&e[r];return t}function h(t,e){var n=0|y(e.length);t=g(t,n);for(var r=0;n>r;r+=1)t[r]=255&e[r];return t}function l(t,e){return e.byteLength,i.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=i.prototype):t=h(t,new Uint8Array(e)),t}function p(t,e){var n=0|y(e.length);t=g(t,n);for(var r=0;n>r;r+=1)t[r]=255&e[r];return t}function d(t,e){var n,r=0;"Buffer"===e.type&&$(e.data)&&(n=e.data,r=0|y(n.length)),t=g(t,r);for(var o=0;r>o;o+=1)t[o]=255&n[o];return t}function g(t,e){i.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=i.prototype):t.length=e;var n=0!==e&&e<=i.poolSize>>>1;return n&&(t.parent=Z),t}function y(t){if(t>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function v(t,e){if(!(this instanceof v))return new v(t,e);var n=new i(t,e);return delete n.parent,n}function m(t,e){"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"binary":case"raw":case"raws":return n;case"utf8":case"utf-8":return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return X(t).length;default:if(r)return H(t).length;e=(""+e).toLowerCase(),r=!0}}function w(t,e,n){var r=!1;if(e=0|e,n=void 0===n||n===1/0?this.length:0|n,t||(t="utf8"),0>e&&(e=0),n>this.length&&(n=this.length),e>=n)return"";for(;;)switch(t){case"hex":return I(this,e,n);case"utf8":case"utf-8":return C(this,e,n);case"ascii":return P(this,e,n);case"binary":return x(this,e,n);case"base64":return S(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function b(t,e,n,r){n=Number(n)||0;var o=t.length-n;r?(r=Number(r),r>o&&(r=o)):r=o;var i=e.length;if(i%2!==0)throw new Error("Invalid hex string");r>i/2&&(r=i/2);for(var s=0;r>s;s++){var u=parseInt(e.substr(2*s,2),16);if(isNaN(u))throw new Error("Invalid hex string");t[n+s]=u}return s}function E(t,e,n,r){return V(H(e,t.length-n),t,n,r)}function A(t,e,n,r){return V(F(e),t,n,r)}function T(t,e,n,r){return A(t,e,n,r)}function R(t,e,n,r){return V(X(e),t,n,r)}function _(t,e,n,r){return V(z(e,t.length-n),t,n,r)}function S(t,e,n){return 0===e&&n===t.length?J.fromByteArray(t):J.fromByteArray(t.slice(e,n))}function C(t,e,n){n=Math.min(t.length,n);for(var r=[],o=e;n>o;){var i=t[o],s=null,u=i>239?4:i>223?3:i>191?2:1;if(n>=o+u){var a,f,c,h;switch(u){case 1:128>i&&(s=i);break;case 2:a=t[o+1],128===(192&a)&&(h=(31&i)<<6|63&a,h>127&&(s=h));break;case 3:a=t[o+1],f=t[o+2],128===(192&a)&&128===(192&f)&&(h=(15&i)<<12|(63&a)<<6|63&f,h>2047&&(55296>h||h>57343)&&(s=h));break;case 4:a=t[o+1],f=t[o+2],c=t[o+3],128===(192&a)&&128===(192&f)&&128===(192&c)&&(h=(15&i)<<18|(63&a)<<12|(63&f)<<6|63&c,h>65535&&1114112>h&&(s=h))}}null===s?(s=65533,u=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),o+=u}return U(r)}function U(t){var e=t.length;if(W>=e)return String.fromCharCode.apply(String,t);for(var n="",r=0;e>r;)n+=String.fromCharCode.apply(String,t.slice(r,r+=W));return n}function P(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;n>o;o++)r+=String.fromCharCode(127&t[o]);return r}function x(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;n>o;o++)r+=String.fromCharCode(t[o]);return r}function I(t,e,n){var r=t.length;(!e||0>e)&&(e=0),(!n||0>n||n>r)&&(n=r);for(var o="",i=e;n>i;i++)o+=q(t[i]);return o}function O(t,e,n){for(var r=t.slice(e,n),o="",i=0;it)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,n,r,o,s){if(!i.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");if(e>o||s>e)throw new RangeError("value is out of bounds");if(n+r>t.length)throw new RangeError("index out of range")}function L(t,e,n,r){0>e&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-n,2);i>o;o++)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function j(t,e,n,r){0>e&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-n,4);i>o;o++)t[n+o]=e>>>8*(r?o:3-o)&255}function Y(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError("index out of range");if(0>n)throw new RangeError("index out of range")}function k(t,e,n,r,o){return o||Y(t,e,n,4,3.4028234663852886e38,-3.4028234663852886e38),K.write(t,e,n,r,23,4),n+4}function M(t,e,n,r,o){return o||Y(t,e,n,8,1.7976931348623157e308,-1.7976931348623157e308),K.write(t,e,n,r,52,8),n+8}function G(t){if(t=N(t).replace(Q,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function N(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function q(t){return 16>t?"0"+t.toString(16):t.toString(16)}function H(t,e){e=e||1/0;for(var n,r=t.length,o=null,i=[],s=0;r>s;s++){if(n=t.charCodeAt(s),n>55295&&57344>n){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(56320>n){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=(o-55296<<10|n-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,128>n){if((e-=1)<0)break;i.push(n)}else if(2048>n){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(65536>n){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(1114112>n))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function F(t){for(var e=[],n=0;n>8,o=n%256,i.push(o),i.push(r);return i}function X(t){return J.toByteArray(G(t))}function V(t,e,n,r){for(var o=0;r>o&&!(o+n>=e.length||o>=t.length);o++)e[o+n]=t[o];return o}var J=t("base64-js"),K=t("ieee754"),$=t("isarray");n.Buffer=i,n.SlowBuffer=v,n.INSPECT_MAX_BYTES=50,i.poolSize=8192;var Z={};i.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),i._augment=function(t){return t.__proto__=i.prototype,t},i.TYPED_ARRAY_SUPPORT?(i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0})):(i.prototype.length=void 0,i.prototype.parent=void 0),i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.compare=function(t,e){if(!i.isBuffer(t)||!i.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,o=0,s=Math.min(n,r);s>o&&t[o]===e[o];)++o;return o!==s&&(n=t[o],r=e[o]),r>n?-1:n>r?1:0},i.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(t,e){if(!$(t))throw new TypeError("list argument must be an Array of Buffers.");if(0===t.length)return new i(0);var n;if(void 0===e)for(e=0,n=0;n0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},i.prototype.compare=function(t){if(!i.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?0:i.compare(this,t)},i.prototype.indexOf=function(t,e){function n(t,e,n){for(var r=-1,o=0;n+o2147483647?e=2147483647:-2147483648>e&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(0>e&&(e=Math.max(this.length+e,0)),"string"==typeof t)return 0===t.length?-1:String.prototype.indexOf.call(this,t,e);if(i.isBuffer(t))return n(this,t,e);if("number"==typeof t)return i.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):n(this,[t],e);throw new TypeError("val must be string, number or Buffer")},i.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else if(isFinite(e))e=0|e,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0);else{var o=r;r=e,e=0|n,n=o}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(0>n||0>e)||e>this.length)throw new RangeError("attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return b(this,t,e,n);case"utf8":case"utf-8":return E(this,t,e,n);case"ascii":return A(this,t,e,n);case"binary":return T(this,t,e,n);case"base64":return R(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var W=4096;i.prototype.slice=function(t,e){var n=this.length;t=~~t,e=void 0===e?n:~~e,0>t?(t+=n,0>t&&(t=0)):t>n&&(t=n),0>e?(e+=n,0>e&&(e=0)):e>n&&(e=n),t>e&&(e=t);var r;if(i.TYPED_ARRAY_SUPPORT)r=this.subarray(t,e),r.__proto__=i.prototype;else{var o=e-t;r=new i(o,void 0);for(var s=0;o>s;s++)r[s]=this[s+t]}return r.length&&(r.parent=this.parent||this),r},i.prototype.readUIntLE=function(t,e,n){t=0|t,e=0|e,n||B(t,e,this.length);for(var r=this[t],o=1,i=0;++i0&&(o*=256);)r+=this[t+--e]*o;return r},i.prototype.readUInt8=function(t,e){return e||B(t,1,this.length),this[t]},i.prototype.readUInt16LE=function(t,e){return e||B(t,2,this.length),this[t]|this[t+1]<<8},i.prototype.readUInt16BE=function(t,e){return e||B(t,2,this.length),this[t]<<8|this[t+1]},i.prototype.readUInt32LE=function(t,e){return e||B(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},i.prototype.readUInt32BE=function(t,e){return e||B(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},i.prototype.readIntLE=function(t,e,n){t=0|t,e=0|e,n||B(t,e,this.length);for(var r=this[t],o=1,i=0;++i=o&&(r-=Math.pow(2,8*e)),r},i.prototype.readIntBE=function(t,e,n){t=0|t,e=0|e,n||B(t,e,this.length);for(var r=e,o=1,i=this[t+--r];r>0&&(o*=256);)i+=this[t+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*e)),i},i.prototype.readInt8=function(t,e){return e||B(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){e||B(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt16BE=function(t,e){e||B(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt32LE=function(t,e){return e||B(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},i.prototype.readInt32BE=function(t,e){return e||B(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},i.prototype.readFloatLE=function(t,e){return e||B(t,4,this.length),K.read(this,t,!0,23,4)},i.prototype.readFloatBE=function(t,e){return e||B(t,4,this.length),K.read(this,t,!1,23,4)},i.prototype.readDoubleLE=function(t,e){return e||B(t,8,this.length),K.read(this,t,!0,52,8)},i.prototype.readDoubleBE=function(t,e){return e||B(t,8,this.length),K.read(this,t,!1,52,8)},i.prototype.writeUIntLE=function(t,e,n,r){t=+t,e=0|e,n=0|n,r||D(this,t,e,n,Math.pow(2,8*n),0);var o=1,i=0;for(this[e]=255&t;++i=0&&(i*=256);)this[e+o]=t/i&255;return e+n},i.prototype.writeUInt8=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,1,255,0),i.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},i.prototype.writeUInt16LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},i.prototype.writeUInt16BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},i.prototype.writeUInt32LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},i.prototype.writeUInt32BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},i.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e=0|e,!r){var o=Math.pow(2,8*n-1);D(this,t,e,n,o-1,-o)}var i=0,s=1,u=0>t?1:0;for(this[e]=255&t;++i>0)-u&255;return e+n},i.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e=0|e,!r){var o=Math.pow(2,8*n-1);D(this,t,e,n,o-1,-o)}var i=n-1,s=1,u=0>t?1:0;for(this[e+i]=255&t;--i>=0&&(s*=256);)this[e+i]=(t/s>>0)-u&255;return e+n},i.prototype.writeInt8=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,1,127,-128),i.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),0>t&&(t=255+t+1),this[e]=255&t,e+1},i.prototype.writeInt16LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},i.prototype.writeInt16BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},i.prototype.writeInt32LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},i.prototype.writeInt32BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,2147483647,-2147483648),0>t&&(t=4294967295+t+1),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},i.prototype.writeFloatLE=function(t,e,n){return k(this,t,e,!0,n)},i.prototype.writeFloatBE=function(t,e,n){return k(this,t,e,!1,n)},i.prototype.writeDoubleLE=function(t,e,n){return M(this,t,e,!0,n)},i.prototype.writeDoubleBE=function(t,e,n){return M(this,t,e,!1,n)},i.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&n>r&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(0>e)throw new RangeError("targetStart out of bounds");if(0>n||n>=this.length)throw new RangeError("sourceStart out of bounds");if(0>r)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-en&&r>e)for(o=s-1;o>=0;o--)t[o+e]=this[o+n];else if(1e3>s||!i.TYPED_ARRAY_SUPPORT)for(o=0;s>o;o++)t[o+e]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+s),e);return s},i.prototype.fill=function(t,e,n){if(t||(t=0),e||(e=0),n||(n=this.length),e>n)throw new RangeError("end < start");if(n!==e&&0!==this.length){if(0>e||e>=this.length)throw new RangeError("start out of bounds");if(0>n||n>this.length)throw new RangeError("end out of bounds");var r;if("number"==typeof t)for(r=e;n>r;r++)this[r]=t;else{var o=H(t.toString()),i=o.length;for(r=e;n>r;r++)this[r]=o[r%i]}return this}};var Q=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":19,ieee754:23,isarray:21}],21:[function(t,e,n){var r={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},{}],22:[function(e,n,r){(function(r,o){(function(){"use strict";function i(t){return"function"==typeof t||"object"==typeof t&&null!==t}function s(t){return"function"==typeof t}function u(t){X=t}function a(t){$=t}function f(){return function(){r.nextTick(d)}}function c(){return function(){z(d)}}function h(){var t=0,e=new Q(d),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function l(){var t=new MessageChannel;return t.port1.onmessage=d,function(){t.port2.postMessage(0)}}function p(){return function(){setTimeout(d,1)}}function d(){for(var t=0;K>t;t+=2){var e=nt[t],n=nt[t+1];e(n),nt[t]=void 0,nt[t+1]=void 0}K=0}function g(){try{var t=e,n=t("vertx");return z=n.runOnLoop||n.runOnContext,c()}catch(r){return p()}}function y(t,e){var n=this,r=n._state;if(r===st&&!t||r===ut&&!e)return this;var o=new this.constructor(m),i=n._result;if(r){var s=arguments[r-1];$(function(){D(r,o,s,i)})}else x(n,o,t,e);return o}function v(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(m);return S(n,t),n}function m(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(t){try{return t.then; +}catch(e){return at.error=e,at}}function A(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function T(t,e,n){$(function(t){var r=!1,o=A(n,e,function(n){r||(r=!0,e!==n?S(t,n):U(t,n))},function(e){r||(r=!0,P(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,P(t,o))},t)}function R(t,e){e._state===st?U(t,e._result):e._state===ut?P(t,e._result):x(e,void 0,function(e){S(t,e)},function(e){P(t,e)})}function _(t,e,n){e.constructor===t.constructor&&n===rt&&constructor.resolve===ot?R(t,e):n===at?P(t,at.error):void 0===n?U(t,e):s(n)?T(t,e,n):U(t,e)}function S(t,e){t===e?P(t,w()):i(e)?_(t,e,E(e)):U(t,e)}function C(t){t._onerror&&t._onerror(t._result),I(t)}function U(t,e){t._state===it&&(t._result=e,t._state=st,0!==t._subscribers.length&&$(I,t))}function P(t,e){t._state===it&&(t._state=ut,t._result=e,$(C,t))}function x(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+st]=n,o[i+ut]=r,0===i&&t._state&&$(I,t)}function I(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r,o,i=t._result,s=0;ss;s++)x(r.resolve(t[s]),void 0,e,n);return o}function k(t){var e=this,n=new e(m);return P(n,t),n}function M(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function G(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function N(t){this._id=pt++,this._state=void 0,this._result=void 0,this._subscribers=[],m!==t&&("function"!=typeof t&&M(),this instanceof N?L(this,t):G())}function q(t,e){this._instanceConstructor=t,this.promise=new t(m),Array.isArray(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?U(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&U(this.promise,this._result))):P(this.promise,this._validationError())}function H(){var t;if("undefined"!=typeof o)t=o;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;n&&"[object Promise]"===Object.prototype.toString.call(n.resolve())&&!n.cast||(t.Promise=dt)}var F;F=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var z,X,V,J=F,K=0,$=function(t,e){nt[K]=t,nt[K+1]=e,K+=2,2===K&&(X?X(d):V())},Z="undefined"!=typeof window?window:void 0,W=Z||{},Q=W.MutationObserver||W.WebKitMutationObserver,tt="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),et="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,nt=new Array(1e3);V=tt?f():Q?h():et?l():void 0===Z&&"function"==typeof e?g():p();var rt=y,ot=v,it=void 0,st=1,ut=2,at=new O,ft=new O,ct=j,ht=Y,lt=k,pt=0,dt=N;N.all=ct,N.race=ht,N.resolve=ot,N.reject=lt,N._setScheduler=u,N._setAsap=a,N._asap=$,N.prototype={constructor:N,then:rt,"catch":function(t){return this.then(null,t)}};var gt=q;q.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},q.prototype._enumerate=function(){for(var t=this.length,e=this._input,n=0;this._state===it&&t>n;n++)this._eachEntry(e[n],n)},q.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===ot){var o=E(t);if(o===rt&&t._state!==it)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===dt){var i=new n(m);_(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){e(t)}),e)}else this._willSettleAt(r(t),e)},q.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===it&&(this._remaining--,t===ut?P(r,n):this._result[e]=n),0===this._remaining&&U(r,this._result)},q.prototype._willSettleAt=function(t,e){var n=this;x(t,void 0,function(t){n._settledAt(st,e,t)},function(t){n._settledAt(ut,e,t)})};var yt=H,vt={Promise:dt,polyfill:yt};"function"==typeof t&&t.amd?t(function(){return vt}):"undefined"!=typeof n&&n.exports?n.exports=vt:"undefined"!=typeof this&&(this.ES6Promise=vt),yt()}).call(this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:24}],23:[function(t,e,n){n.read=function(t,e,n,r,o){var i,s,u=8*o-r-1,a=(1<>1,c=-7,h=n?o-1:0,l=n?-1:1,p=t[e+h];for(h+=l,i=p&(1<<-c)-1,p>>=-c,c+=u;c>0;i=256*i+t[e+h],h+=l,c-=8);for(s=i&(1<<-c)-1,i>>=-c,c+=r;c>0;s=256*s+t[e+h],h+=l,c-=8);if(0===i)i=1-f;else{if(i===a)return s?NaN:(p?-1:1)*(1/0);s+=Math.pow(2,r),i-=f}return(p?-1:1)*s*Math.pow(2,i-r)},n.write=function(t,e,n,r,o,i){var s,u,a,f=8*i-o-1,c=(1<>1,l=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=0>e||0===e&&0>1/e?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(a=Math.pow(2,-s))<1&&(s--,a*=2),e+=s+h>=1?l/a:l*Math.pow(2,1-h),e*a>=2&&(s++,a/=2),s+h>=c?(u=0,s=c):s+h>=1?(u=(e*a-1)*Math.pow(2,o),s+=h):(u=e*Math.pow(2,h-1)*Math.pow(2,o),s=0));o>=8;t[n+p]=255&u,p+=d,u/=256,o-=8);for(s=s<0;t[n+p]=255&s,p+=d,s/=256,f-=8);t[n+p-d]|=128*g}},{}],24:[function(t,e,n){function r(){c=!1,u.length?f=u.concat(f):h=-1,f.length&&o()}function o(){if(!c){var t=setTimeout(r);c=!0;for(var e=f.length;e;){for(u=f,f=[];++h1)for(var n=1;no;)e=t.charCodeAt(o++),e>=55296&&56319>=e&&i>o?(n=t.charCodeAt(o++),56320==(64512&n)?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--)):r.push(e);return r}function s(t){for(var e,n=t.length,r=-1,o="";++r65535&&(e-=65536,o+=b(e>>>10&1023|55296),e=56320|1023&e),o+=b(e);return o}function u(t){if(t>=55296&&57343>=t)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function a(t,e){return b(t>>e&63|128)}function f(t){if(0==(4294967168&t))return b(t);var e="";return 0==(4294965248&t)?e=b(t>>6&31|192):0==(4294901760&t)?(u(t),e=b(t>>12&15|224),e+=a(t,6)):0==(4292870144&t)&&(e=b(t>>18&7|240),e+=a(t,12),e+=a(t,6)),e+=b(63&t|128)}function c(t){for(var e,n=i(t),r=n.length,o=-1,s="";++o=m)throw Error("Invalid byte index");var t=255&v[w];if(w++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function l(){var t,e,n,r,o;if(w>m)throw Error("Invalid byte index");if(w==m)return!1;if(t=255&v[w],w++,0==(128&t))return t;if(192==(224&t)){var e=h();if(o=(31&t)<<6|e,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&t)){if(e=h(),n=h(),o=(15&t)<<12|e<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&t)&&(e=h(),n=h(),r=h(),o=(15&t)<<18|e<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function p(t){v=i(t),m=v.length,w=0;for(var e,n=[];(e=l())!==!1;)n.push(e);return s(n)}var d="object"==typeof r&&r,g="object"==typeof n&&n&&n.exports==d&&n,y="object"==typeof e&&e;y.global!==y&&y.window!==y||(o=y);var v,m,w,b=String.fromCharCode,E={version:"2.0.0",encode:c,decode:p};if("function"==typeof t&&"object"==typeof t.amd&&t.amd)t(function(){return E});else if(d&&!d.nodeType)if(g)g.exports=E;else{var A={},T=A.hasOwnProperty;for(var R in E)T.call(E,R)&&(d[R]=E[R])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],26:[function(e,n,r){(function(o){!function(o,i){if("function"==typeof t&&t.amd)t(["module","utf8","axios","base-64","es6-promise"],i);else if("undefined"!=typeof r)i(n,e("utf8"),e("axios"),e("base-64"),e("es6-promise"));else{var s={exports:{}};i(s,o.utf8,o.axios,o.base64,o.Promise),o.github=s.exports}}(this,function(t,e,n,r,i){"use strict";function s(t){return r.encode(e.encode(t))}function u(t){t=t||{};var r=t.apiUrl||"https://api.github.com",i=u._request=function(e,o,i,u,f){function c(){var t=o.indexOf("//")>=0?o:r+o;if(t+=/\?/.test(t)?"&":"?",i&&"object"===("undefined"==typeof i?"undefined":a(i))&&["GET","HEAD","DELETE"].indexOf(e)>-1)for(var n in i)i.hasOwnProperty(n)&&(t+="&"+encodeURIComponent(n)+"="+encodeURIComponent(i[n]));return t.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var h={headers:{Accept:f?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:e,data:i?i:{},url:c()};return(t.token||t.username&&t.password)&&(h.headers.Authorization=t.token?"token "+t.token:"Basic "+s(t.username+":"+t.password)),n(h).then(function(t){u(null,t.data||!0,t)},function(t){304===t.status?u(null,t.data||!0,t):u({path:o,request:t,error:t.status})})},f=u._requestAllPages=function(t,e,n){var r=[];!function o(){i("GET",t,null,function(i,s,u){if(i)return n(i);s instanceof Array||(s=[s]),r.push.apply(r,s);var a=(u.headers.link||"").split(",").filter(function(t){return/rel="next"/.test(t)}).map(function(t){return(/<(.*)>/.exec(t)||[])[1]}).pop();!a||e?n(i,r,u):(t=a,o())})}()};return u.User=function(){this.repos=function(t,e){"function"==typeof t&&(e=t,t={}),t=t||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(t.type||"all")),r.push("sort="+encodeURIComponent(t.sort||"updated")),r.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&r.push("page="+encodeURIComponent(t.page)),n+="?"+r.join("&"),f(n,!!t.page,e)},this.orgs=function(t){i("GET","/user/orgs",null,t)},this.gists=function(t){i("GET","/gists",null,t)},this.notifications=function(t,e){"function"==typeof t&&(e=t,t={}),t=t||{};var n="/notifications",r=[];if(t.all&&r.push("all=true"),t.participating&&r.push("participating=true"),t.since){var o=t.since;o.constructor===Date&&(o=o.toISOString()),r.push("since="+encodeURIComponent(o))}if(t.before){var s=t.before;s.constructor===Date&&(s=s.toISOString()),r.push("before="+encodeURIComponent(s))}t.page&&r.push("page="+encodeURIComponent(t.page)),r.length>0&&(n+="?"+r.join("&")),i("GET",n,null,e)},this.show=function(t,e){var n=t?"/users/"+t:"/user";i("GET",n,null,e)},this.userRepos=function(t,e,n){"function"==typeof e&&(n=e,e={});var r="/users/"+t+"/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),r+="?"+o.join("&"),f(r,!!e.page,n)},this.userStarred=function(t,e){var n="/users/"+t+"/starred?type=all&per_page=100";f(n,!1,e)},this.userGists=function(t,e){i("GET","/users/"+t+"/gists",null,e)},this.orgRepos=function(t,e){var n="/orgs/"+t+"/repos?type=all&&page_num=100&sort=updated&direction=desc";f(n,!1,e)},this.follow=function(t,e){i("PUT","/user/following/"+t,null,e)},this.unfollow=function(t,e){i("DELETE","/user/following/"+t,null,e)},this.createRepo=function(t,e){i("POST","/user/repos",t,e)}},u.Repository=function(t){function n(t,e){return t===l.branch&&l.sha?e(null,l.sha):void h.getRef("heads/"+t,function(n,r){l.branch=t,l.sha=r,e(n,r)})}var r,a=t.name,f=t.user,c=t.fullname,h=this;r=c?"/repos/"+c:"/repos/"+f+"/"+a;var l={branch:null,sha:null};this.getRef=function(t,e){i("GET",r+"/git/refs/"+t,null,function(t,n,r){return t?e(t):void e(null,n.object.sha,r)})},this.createRef=function(t,e){i("POST",r+"/git/refs",t,e)},this.deleteRef=function(e,n){i("DELETE",r+"/git/refs/"+e,t,n)},this.deleteRepo=function(e){i("DELETE",r,t,e)},this.listTags=function(t){i("GET",r+"/tags",null,t)},this.listPulls=function(t,e){t=t||{};var n=r+"/pulls",o=[];"string"==typeof t?o.push("state="+t):(t.state&&o.push("state="+encodeURIComponent(t.state)),t.head&&o.push("head="+encodeURIComponent(t.head)),t.base&&o.push("base="+encodeURIComponent(t.base)),t.sort&&o.push("sort="+encodeURIComponent(t.sort)),t.direction&&o.push("direction="+encodeURIComponent(t.direction)),t.page&&o.push("page="+t.page),t.per_page&&o.push("per_page="+t.per_page)),o.length>0&&(n+="?"+o.join("&")),i("GET",n,null,e)},this.getPull=function(t,e){i("GET",r+"/pulls/"+t,null,e)},this.compare=function(t,e,n){i("GET",r+"/compare/"+t+"..."+e,null,n)},this.listBranches=function(t){i("GET",r+"/git/refs/heads",null,function(e,n,r){return e?t(e):(n=n.map(function(t){return t.ref.replace(/^refs\/heads\//,"")}),void t(null,n,r))})},this.getBlob=function(t,e){i("GET",r+"/git/blobs/"+t,null,e,"raw")},this.getCommit=function(t,e,n){i("GET",r+"/git/commits/"+e,null,n)},this.getSha=function(t,e,n){return e&&""!==e?void i("GET",r+"/contents/"+e+(t?"?ref="+t:""),null,function(t,e,r){return t?n(t):void n(null,e.sha,r)}):h.getRef("heads/"+t,n)},this.getStatuses=function(t,e){i("GET",r+"/statuses/"+t,null,e)},this.getTree=function(t,e){i("GET",r+"/git/trees/"+t,null,function(t,n,r){return t?e(t):void e(null,n.tree,r)})},this.postBlob=function(t,n){if("string"==typeof t)t={content:e.encode(t),encoding:"utf-8"};else if("undefined"!=typeof o&&t instanceof o)t={content:t.toString("base64"),encoding:"base64"};else{if(!("undefined"!=typeof Blob&&t instanceof Blob))throw new Error("Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)");t={content:s(t),encoding:"base64"}}i("POST",r+"/git/blobs",t,function(t,e,r){return t?n(t):void n(null,e.sha,r)})},this.updateTree=function(t,e,n,o){var s={base_tree:t,tree:[{path:e,mode:"100644",type:"blob",sha:n}]};i("POST",r+"/git/trees",s,function(t,e,n){return t?o(t):void o(null,e.sha,n)})},this.postTree=function(t,e){i("POST",r+"/git/trees",{tree:t},function(t,n,r){return t?e(t):void e(null,n.sha,r)})},this.commit=function(e,n,o,s){var a=new u.User;a.show(null,function(u,a){if(u)return s(u);var f={message:o,author:{name:t.user,email:a.email},parents:[e],tree:n};i("POST",r+"/git/commits",f,function(t,e,n){return t?s(t):(l.sha=e.sha,void s(null,e.sha,n))})})},this.updateHead=function(t,e,n){i("PATCH",r+"/git/refs/heads/"+t,{sha:e},n)},this.show=function(t){i("GET",r,null,t)},this.contributors=function(t,e){e=e||1e3;var n=this;i("GET",r+"/stats/contributors",null,function(r,o,i){return r?t(r):void(202===i.status?setTimeout(function(){n.contributors(t,e)},e):t(r,o,i))})},this.contents=function(t,e,n){e=encodeURI(e),i("GET",r+"/contents"+(e?"/"+e:""),{ref:t},n)},this.fork=function(t){i("POST",r+"/forks",null,t)},this.listForks=function(t){i("GET",r+"/forks",null,t)},this.branch=function(t,e,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=e,e=t,t="master"),this.getRef("heads/"+t,function(t,r){return t&&n?n(t):void h.createRef({ref:"refs/heads/"+e,sha:r},n)})},this.createPullRequest=function(t,e){i("POST",r+"/pulls",t,e)},this.listHooks=function(t){i("GET",r+"/hooks",null,t)},this.getHook=function(t,e){i("GET",r+"/hooks/"+t,null,e)},this.createHook=function(t,e){i("POST",r+"/hooks",t,e)},this.editHook=function(t,e,n){i("PATCH",r+"/hooks/"+t,e,n)},this.deleteHook=function(t,e){i("DELETE",r+"/hooks/"+t,null,e)},this.read=function(t,e,n){i("GET",r+"/contents/"+encodeURI(e)+(t?"?ref="+t:""),null,n,!0)},this.remove=function(t,e,n){h.getSha(t,e,function(o,s){return o?n(o):void i("DELETE",r+"/contents/"+e,{message:e+" is removed",sha:s,branch:t},n)})},this["delete"]=this.remove,this.move=function(t,e,r,o){n(t,function(n,i){h.getTree(i+"?recursive=true",function(n,s){s.forEach(function(t){t.path===e&&(t.path=r),"tree"===t.type&&delete t.sha}),h.postTree(s,function(n,r){h.commit(i,r,"Deleted "+e,function(e,n){h.updateHead(t,n,o)})})})})},this.write=function(t,e,n,o,u,a){"function"==typeof u&&(a=u,u={}),h.getSha(t,encodeURI(e),function(f,c){var h={message:o,content:"undefined"==typeof u.encode||u.encode?s(n):n,branch:t,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};f&&404!==f.error||(h.sha=c),i("PUT",r+"/contents/"+encodeURI(e),h,a)})},this.getCommits=function(t,e){t=t||{};var n=r+"/commits",o=[];if(t.sha&&o.push("sha="+encodeURIComponent(t.sha)),t.path&&o.push("path="+encodeURIComponent(t.path)),t.author&&o.push("author="+encodeURIComponent(t.author)),t.since){var s=t.since;s.constructor===Date&&(s=s.toISOString()),o.push("since="+encodeURIComponent(s))}if(t.until){var u=t.until;u.constructor===Date&&(u=u.toISOString()),o.push("until="+encodeURIComponent(u))}t.page&&o.push("page="+t.page),t.perpage&&o.push("per_page="+t.perpage),o.length>0&&(n+="?"+o.join("&")),i("GET",n,null,e)},this.isStarred=function(t,e,n){i("GET","/user/starred/"+t+"/"+e,null,n)},this.star=function(t,e,n){i("PUT","/user/starred/"+t+"/"+e,null,n)},this.unstar=function(t,e,n){i("DELETE","/user/starred/"+t+"/"+e,null,n)},this.createRelease=function(t,e){i("POST",r+"/releases",t,e)},this.editRelease=function(t,e,n){i("PATCH",r+"/releases/"+t,e,n)},this.getRelease=function(t,e){i("GET",r+"/releases/"+t,null,e)},this.deleteRelease=function(t,e){i("DELETE",r+"/releases/"+t,null,e)}},u.Gist=function(t){var e=t.id,n="/gists/"+e;this.read=function(t){i("GET",n,null,t)},this.create=function(t,e){i("POST","/gists",t,e)},this["delete"]=function(t){i("DELETE",n,null,t)},this.fork=function(t){i("POST",n+"/fork",null,t)},this.update=function(t,e){i("PATCH",n,t,e)},this.star=function(t){i("PUT",n+"/star",null,t)},this.unstar=function(t){i("DELETE",n+"/star",null,t)},this.isStarred=function(t){i("GET",n+"/star",null,t)}},u.Issue=function(t){var e="/repos/"+t.user+"/"+t.repo+"/issues";this.create=function(t,n){i("POST",e,t,n)},this.list=function(t,n){var r=[];Object.keys(t).forEach(function(e){r.push(encodeURIComponent(e)+"="+encodeURIComponent(t[e]))}),f(e+"?"+r.join("&"),!!t.page,n)},this.comment=function(t,e,n){i("POST",t.comments_url,{body:e},n)},this.edit=function(t,n,r){i("PATCH",e+"/"+t,n,r)},this.get=function(t,n){i("GET",e+"/"+t,null,n)}},u.Search=function(t){var e="/search/",n="?q="+t.query;this.repositories=function(t,r){i("GET",e+"repositories"+n,t,r)},this.code=function(t,r){i("GET",e+"code"+n,t,r)},this.issues=function(t,r){i("GET",e+"issues"+n,t,r)},this.users=function(t,r){i("GET",e+"users"+n,t,r)}},u.RateLimit=function(){this.getRateLimit=function(t){i("GET","/rate_limit",null,t)}},u}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};i.polyfill&&i.polyfill(),u.getIssues=function(t,e){return new u.Issue({user:t,repo:e})},u.getRepo=function(t,e){return e?new u.Repository({user:t,name:e}):new u.Repository({fullname:t})},u.getUser=function(){return new u.User},u.getGist=function(t){return new u.Gist({id:t})},u.getSearch=function(t){return new u.Search({query:t})},u.getRateLimit=function(){return new u.RateLimit},t.exports=u})}).call(this,e("buffer").Buffer)},{axios:1,"base-64":18,buffer:20,"es6-promise":22,utf8:25}]},{},[26])(26)}); +//# sourceMappingURL=github.bundle.min.js.map diff --git a/dist/github.bundle.min.js.map b/dist/github.bundle.min.js.map new file mode 100644 index 00000000..1e78aff2 --- /dev/null +++ b/dist/github.bundle.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/base64-js/lib/b64.js","node_modules/buffer/index.js","node_modules/buffer/node_modules/isarray/index.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/ieee754/index.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"init","len","lookup","revLookup","toByteArray","b64","j","tmp","placeHolders","Arr","L","tripletToBase64","num","encodeChunk","uint8","start","end","fromByteArray","extraBytes","maxChunkLength","len2","Uint8Array",20,"typedArraySupport","foo","subarray","byteLength","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","arg","parent","fromNumber","fromString","fromObject","that","allocate","checked","string","encoding","object","isBuffer","fromBuffer","fromArray","TypeError","fromTypedArray","fromArrayBuffer","fromArrayLike","fromJsonObject","copy","array","__proto__","type","fromPool","poolSize","rootParent","RangeError","SlowBuffer","subject","buf","loweredCase","utf8ToBytes","base64ToBytes","slowToString","Infinity","hexSlice","utf8Slice","asciiSlice","binarySlice","base64Slice","utf16leSlice","hexWrite","offset","Number","remaining","strLen","parseInt","isNaN","utf8Write","blitBuffer","asciiWrite","asciiToBytes","binaryWrite","base64Write","ucs2Write","utf16leToBytes","slice","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","leadSurrogate","byteArray","hi","lo","src","dst","INSPECT_MAX_BYTES","_augment","Symbol","species","defineProperty","configurable","_isBuffer","compare","x","y","isEncoding","concat","list","pos","item","equals","inspect","byteOffset","arrayIndexOf","foundIndex","isFinite","swap","toJSON","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","target","targetStart","set","fill","base64-js","isarray",21,22,"lib$es6$promise$utils$$objectOrFunction","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",23,"isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","rt","abs","log","LN2",24,"cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","clearTimeout","Item","fun","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",25,"ucs2decode","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","createByte","encodeCodePoint","symbol","utf8encode","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","utf8",26,"factory","mod","github","Utf8","Base64","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","_typeof","param","getTime","token","_requestAllPages","singlePage","results","iterate","err","xhr","next","link","filter","exec","pop","User","repos","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Repository","updateTree","branch","currentTree","sha","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","Blob","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","query","keys","option","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","iterator","getIssues","getRepo","getUser","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\n (!('status' in request) && response.responseText) ?\n resolve :\n reject)(response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new Error('Network Error'));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n if (request.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n if (utils.isArrayBuffer(requestData)) {\n requestData = new DataView(requestData);\n }\n\n // Send the request\n request.send(requestData);\n};\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\n\nvar defaults = require('./defaults');\nvar utils = require('./utils');\nvar dispatchRequest = require('./core/dispatchRequest');\nvar InterceptorManager = require('./core/InterceptorManager');\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\nvar combineURLs = require('./helpers/combineURLs');\nvar bind = require('./helpers/bind');\nvar transformData = require('./helpers/transformData');\n\nfunction Axios(defaultConfig) {\n this.defaults = utils.merge({}, defaultConfig);\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Don't allow overriding defaults.withCredentials\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nvar defaultInstance = new Axios(defaults);\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\n\naxios.create = function create(defaultConfig) {\n return new Axios(defaultConfig);\n};\n\n// Expose defaults\naxios.defaults = defaultInstance.defaults;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose interceptors\naxios.interceptors = defaultInstance.interceptors;\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\n\n/**\n * Dispatch a request to the server using whichever adapter\n * is supported by the current environment.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n return new Promise(function executor(resolve, reject) {\n try {\n var adapter;\n\n if (typeof config.adapter === 'function') {\n // For custom adapter support\n adapter = config.adapter;\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n\n if (typeof adapter === 'function') {\n adapter(resolve, reject, config);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":24}],6:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nmodule.exports = {\n transformRequest: [function transformResponseJSON(data, headers) {\n if (utils.isFormData(data)) {\n return data;\n }\n if (utils.isArrayBuffer(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\n // Set application/json if no Content-Type has been specified\n if (!utils.isUndefined(headers)) {\n utils.forEach(headers, function processContentTypeHeader(val, key) {\n if (key.toLowerCase() === 'content-type') {\n headers['Content-Type'] = val;\n }\n });\n\n if (utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = 'application/json;charset=utf-8';\n }\n }\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponseJSON(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n data = data.replace(PROTECTION_PREFIX, '');\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n },\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\n post: utils.merge(DEFAULT_CONTENT_TYPE),\n put: utils.merge(DEFAULT_CONTENT_TYPE)\n },\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN'\n};\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n},{}],8:[function(require,module,exports){\n'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\nInvalidCharacterError.prototype = new Error;\nInvalidCharacterError.prototype.code = 5;\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\n};\n\n},{}],11:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n},{}],13:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n},{}],16:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n trim: trim\n};\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n'use strict'\n\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nfunction init () {\n var i\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n var len = code.length\n\n for (i = 0; i < len; i++) {\n lookup[i] = code[i]\n }\n\n for (i = 0; i < len; ++i) {\n revLookup[code.charCodeAt(i)] = i\n }\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\ninit()\n\nfunction toByteArray (b64) {\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp & 0xFF0000) >> 16\n arr[L++] = (tmp & 0xFF00) >> 8\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n\n},{}],20:[function(require,module,exports){\n(function (global){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\nBuffer.poolSize = 8192 // not used by this implementation\n\nvar rootParent = {}\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.foo = function () { return 42 }\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\nfunction Buffer (arg) {\n if (!(this instanceof Buffer)) {\n // Avoid going through an ArgumentsAdaptorTrampoline in the common case.\n if (arguments.length > 1) return new Buffer(arg, arguments[1])\n return new Buffer(arg)\n }\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n this.length = 0\n this.parent = undefined\n }\n\n // Common case.\n if (typeof arg === 'number') {\n return fromNumber(this, arg)\n }\n\n // Slightly less common case.\n if (typeof arg === 'string') {\n return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')\n }\n\n // Unusual.\n return fromObject(this, arg)\n}\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction fromNumber (that, length) {\n that = allocate(that, length < 0 ? 0 : checked(length) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < length; i++) {\n that[i] = 0\n }\n }\n return that\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'\n\n // Assumption: byteLength() return value is always < kMaxLength.\n var length = byteLength(string, encoding) | 0\n that = allocate(that, length)\n\n that.write(string, encoding)\n return that\n}\n\nfunction fromObject (that, object) {\n if (Buffer.isBuffer(object)) return fromBuffer(that, object)\n\n if (isArray(object)) return fromArray(that, object)\n\n if (object == null) {\n throw new TypeError('must start with number, buffer, array or string')\n }\n\n if (typeof ArrayBuffer !== 'undefined') {\n if (object.buffer instanceof ArrayBuffer) {\n return fromTypedArray(that, object)\n }\n if (object instanceof ArrayBuffer) {\n return fromArrayBuffer(that, object)\n }\n }\n\n if (object.length) return fromArrayLike(that, object)\n\n return fromJsonObject(that, object)\n}\n\nfunction fromBuffer (that, buffer) {\n var length = checked(buffer.length) | 0\n that = allocate(that, length)\n buffer.copy(that, 0, 0, length)\n return that\n}\n\nfunction fromArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Duplicate of fromArray() to keep fromArray() monomorphic.\nfunction fromTypedArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n // Truncating the elements is probably not what people expect from typed\n // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior\n // of the old Buffer constructor.\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(array)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromTypedArray(that, new Uint8Array(array))\n }\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.\n// Returns a zero-length buffer for inputs that don't conform to the spec.\nfunction fromJsonObject (that, object) {\n var array\n var length = 0\n\n if (object.type === 'Buffer' && isArray(object.data)) {\n array = object.data\n length = checked(array.length) | 0\n }\n that = allocate(that, length)\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n} else {\n // pre-set for values that may exist in the future\n Buffer.prototype.length = undefined\n Buffer.prototype.parent = undefined\n}\n\nfunction allocate (that, length) {\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that.length = length\n }\n\n var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1\n if (fromPool) that.parent = rootParent\n\n return that\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (subject, encoding) {\n if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)\n\n var buf = new Buffer(subject, encoding)\n delete buf.parent\n return buf\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n var i = 0\n var len = Math.min(x, y)\n while (i < len) {\n if (a[i] !== b[i]) break\n\n ++i\n }\n\n if (i !== len) {\n x = a[i]\n y = b[i]\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'raw':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')\n\n if (list.length === 0) {\n return new Buffer(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; i++) {\n length += list[i].length\n }\n }\n\n var buf = new Buffer(length)\n var pos = 0\n for (i = 0; i < list.length; i++) {\n var item = list[i]\n item.copy(buf, pos)\n pos += item.length\n }\n return buf\n}\n\nfunction byteLength (string, encoding) {\n if (typeof string !== 'string') string = '' + string\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'binary':\n // Deprecated\n case 'raw':\n case 'raws':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n start = start | 0\n end = end === undefined || end === Infinity ? this.length : end | 0\n\n if (!encoding) encoding = 'utf8'\n if (start < 0) start = 0\n if (end > this.length) end = this.length\n if (end <= start) return ''\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'binary':\n return binarySlice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return 0\n return Buffer.compare(this, b)\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset) {\n if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff\n else if (byteOffset < -0x80000000) byteOffset = -0x80000000\n byteOffset >>= 0\n\n if (this.length === 0) return -1\n if (byteOffset >= this.length) return -1\n\n // Negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)\n\n if (typeof val === 'string') {\n if (val.length === 0) return -1 // special case: looking for empty string always fails\n return String.prototype.indexOf.call(this, val, byteOffset)\n }\n if (Buffer.isBuffer(val)) {\n return arrayIndexOf(this, val, byteOffset)\n }\n if (typeof val === 'number') {\n if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {\n return Uint8Array.prototype.indexOf.call(this, val, byteOffset)\n }\n return arrayIndexOf(this, [ val ], byteOffset)\n }\n\n function arrayIndexOf (arr, val, byteOffset) {\n var foundIndex = -1\n for (var i = 0; byteOffset + i < arr.length; i++) {\n if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex\n } else {\n foundIndex = -1\n }\n }\n return -1\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new Error('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; i++) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) throw new Error('Invalid hex string')\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction binaryWrite (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n var swap = encoding\n encoding = offset\n offset = length | 0\n length = swap\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'binary':\n return binaryWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction binarySlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; i++) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; i++) {\n newBuf[i] = this[i + start]\n }\n }\n\n if (newBuf.length) newBuf.parent = this.parent || this\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('value is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n if (offset < 0) throw new RangeError('index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; i--) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; i++) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// fill(value, start=0, end=buffer.length)\nBuffer.prototype.fill = function fill (value, start, end) {\n if (!value) value = 0\n if (!start) start = 0\n if (!end) end = this.length\n\n if (end < start) throw new RangeError('end < start')\n\n // Fill 0 bytes; we're done\n if (end === start) return\n if (this.length === 0) return\n\n if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')\n if (end < 0 || end > this.length) throw new RangeError('end out of bounds')\n\n var i\n if (typeof value === 'number') {\n for (i = start; i < end; i++) {\n this[i] = value\n }\n } else {\n var bytes = utf8ToBytes(value.toString())\n var len = bytes.length\n for (i = start; i < end; i++) {\n this[i] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; i++) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; i++) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"base64-js\":19,\"ieee754\":23,\"isarray\":21}],21:[function(require,module,exports){\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n},{}],22:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":24}],23:[function(require,module,exports){\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n},{}],24:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],25:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],26:[function(require,module,exports){\n(function (Buffer){\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.utf8, global.axios, global.base64, global.Promise);\n global.github = mod.exports;\n }\n})(this, function (module, Utf8, axios, Base64, Promise) {\n /*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += /\\?/.test(url) ? '&' : '?';\n\n if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for (var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if (options.token || options.username && options.password) {\n config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config).then(function (response) {\n cb(null, response.data || true, response);\n }, function (response) {\n if (response.status === 304) {\n cb(null, response.data || true, response);\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '').split(',').filter(function (link) {\n return (/rel=\"next\"/.test(link)\n );\n }).map(function (link) {\n return (/<(.*)>/.exec(link) || [])[1];\n }).pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [{\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [parent],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(function () {\n that.contributors(cb, retry);\n }, retry);\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function (owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function (owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function (owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function (options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function (id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function (id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function (id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function (options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function (option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function () {\n this.getRateLimit = function (cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function () {\n return new Github.RateLimit();\n };\n\n module.exports = Github;\n});\n\n}).call(this,require(\"buffer\").Buffer)\n\n},{\"axios\":1,\"base-64\":18,\"buffer\":20,\"es6-promise\":22,\"utf8\":25}]},{},[26])(26)\n});\n\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar transformData = require('./../helpers/transformData');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar btoa = window.btoa || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(resolve, reject, config) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onload = function handleLoad() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\n var response = {\n data: transformData(\n responseData,\n responseHeaders,\n config.transformResponse\n ),\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n // Resolve or reject the Promise based on the status\n ((response.status >= 200 && response.status < 300) ||\n (!('status' in request) && response.responseText) ?\n resolve :\n reject)(response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new Error('Network Error'));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n if (request.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n if (utils.isArrayBuffer(requestData)) {\n requestData = new DataView(requestData);\n }\n\n // Send the request\n request.send(requestData);\n};\n","'use strict';\n\nvar defaults = require('./defaults');\nvar utils = require('./utils');\nvar dispatchRequest = require('./core/dispatchRequest');\nvar InterceptorManager = require('./core/InterceptorManager');\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\nvar combineURLs = require('./helpers/combineURLs');\nvar bind = require('./helpers/bind');\nvar transformData = require('./helpers/transformData');\n\nfunction Axios(defaultConfig) {\n this.defaults = utils.merge({}, defaultConfig);\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Don't allow overriding defaults.withCredentials\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nvar defaultInstance = new Axios(defaults);\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\n\naxios.create = function create(defaultConfig) {\n return new Axios(defaultConfig);\n};\n\n// Expose defaults\naxios.defaults = defaultInstance.defaults;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose interceptors\naxios.interceptors = defaultInstance.interceptors;\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\n/**\n * Dispatch a request to the server using whichever adapter\n * is supported by the current environment.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n return new Promise(function executor(resolve, reject) {\n try {\n var adapter;\n\n if (typeof config.adapter === 'function') {\n // For custom adapter support\n adapter = config.adapter;\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n\n if (typeof adapter === 'function') {\n adapter(resolve, reject, config);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n","'use strict';\n\nvar utils = require('./utils');\n\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nmodule.exports = {\n transformRequest: [function transformResponseJSON(data, headers) {\n if (utils.isFormData(data)) {\n return data;\n }\n if (utils.isArrayBuffer(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\n // Set application/json if no Content-Type has been specified\n if (!utils.isUndefined(headers)) {\n utils.forEach(headers, function processContentTypeHeader(val, key) {\n if (key.toLowerCase() === 'content-type') {\n headers['Content-Type'] = val;\n }\n });\n\n if (utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = 'application/json;charset=utf-8';\n }\n }\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponseJSON(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n data = data.replace(PROTECTION_PREFIX, '');\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n },\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\n post: utils.merge(DEFAULT_CONTENT_TYPE),\n put: utils.merge(DEFAULT_CONTENT_TYPE)\n },\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN'\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\nInvalidCharacterError.prototype = new Error;\nInvalidCharacterError.prototype.code = 5;\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n trim: trim\n};\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","'use strict'\n\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nfunction init () {\n var i\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n var len = code.length\n\n for (i = 0; i < len; i++) {\n lookup[i] = code[i]\n }\n\n for (i = 0; i < len; ++i) {\n revLookup[code.charCodeAt(i)] = i\n }\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\ninit()\n\nfunction toByteArray (b64) {\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp & 0xFF0000) >> 16\n arr[L++] = (tmp & 0xFF00) >> 8\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\nBuffer.poolSize = 8192 // not used by this implementation\n\nvar rootParent = {}\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.foo = function () { return 42 }\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\nfunction Buffer (arg) {\n if (!(this instanceof Buffer)) {\n // Avoid going through an ArgumentsAdaptorTrampoline in the common case.\n if (arguments.length > 1) return new Buffer(arg, arguments[1])\n return new Buffer(arg)\n }\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n this.length = 0\n this.parent = undefined\n }\n\n // Common case.\n if (typeof arg === 'number') {\n return fromNumber(this, arg)\n }\n\n // Slightly less common case.\n if (typeof arg === 'string') {\n return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')\n }\n\n // Unusual.\n return fromObject(this, arg)\n}\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction fromNumber (that, length) {\n that = allocate(that, length < 0 ? 0 : checked(length) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < length; i++) {\n that[i] = 0\n }\n }\n return that\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'\n\n // Assumption: byteLength() return value is always < kMaxLength.\n var length = byteLength(string, encoding) | 0\n that = allocate(that, length)\n\n that.write(string, encoding)\n return that\n}\n\nfunction fromObject (that, object) {\n if (Buffer.isBuffer(object)) return fromBuffer(that, object)\n\n if (isArray(object)) return fromArray(that, object)\n\n if (object == null) {\n throw new TypeError('must start with number, buffer, array or string')\n }\n\n if (typeof ArrayBuffer !== 'undefined') {\n if (object.buffer instanceof ArrayBuffer) {\n return fromTypedArray(that, object)\n }\n if (object instanceof ArrayBuffer) {\n return fromArrayBuffer(that, object)\n }\n }\n\n if (object.length) return fromArrayLike(that, object)\n\n return fromJsonObject(that, object)\n}\n\nfunction fromBuffer (that, buffer) {\n var length = checked(buffer.length) | 0\n that = allocate(that, length)\n buffer.copy(that, 0, 0, length)\n return that\n}\n\nfunction fromArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Duplicate of fromArray() to keep fromArray() monomorphic.\nfunction fromTypedArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n // Truncating the elements is probably not what people expect from typed\n // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior\n // of the old Buffer constructor.\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(array)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromTypedArray(that, new Uint8Array(array))\n }\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.\n// Returns a zero-length buffer for inputs that don't conform to the spec.\nfunction fromJsonObject (that, object) {\n var array\n var length = 0\n\n if (object.type === 'Buffer' && isArray(object.data)) {\n array = object.data\n length = checked(array.length) | 0\n }\n that = allocate(that, length)\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n} else {\n // pre-set for values that may exist in the future\n Buffer.prototype.length = undefined\n Buffer.prototype.parent = undefined\n}\n\nfunction allocate (that, length) {\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that.length = length\n }\n\n var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1\n if (fromPool) that.parent = rootParent\n\n return that\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (subject, encoding) {\n if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)\n\n var buf = new Buffer(subject, encoding)\n delete buf.parent\n return buf\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n var i = 0\n var len = Math.min(x, y)\n while (i < len) {\n if (a[i] !== b[i]) break\n\n ++i\n }\n\n if (i !== len) {\n x = a[i]\n y = b[i]\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'raw':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')\n\n if (list.length === 0) {\n return new Buffer(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; i++) {\n length += list[i].length\n }\n }\n\n var buf = new Buffer(length)\n var pos = 0\n for (i = 0; i < list.length; i++) {\n var item = list[i]\n item.copy(buf, pos)\n pos += item.length\n }\n return buf\n}\n\nfunction byteLength (string, encoding) {\n if (typeof string !== 'string') string = '' + string\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'binary':\n // Deprecated\n case 'raw':\n case 'raws':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n start = start | 0\n end = end === undefined || end === Infinity ? this.length : end | 0\n\n if (!encoding) encoding = 'utf8'\n if (start < 0) start = 0\n if (end > this.length) end = this.length\n if (end <= start) return ''\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'binary':\n return binarySlice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return 0\n return Buffer.compare(this, b)\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset) {\n if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff\n else if (byteOffset < -0x80000000) byteOffset = -0x80000000\n byteOffset >>= 0\n\n if (this.length === 0) return -1\n if (byteOffset >= this.length) return -1\n\n // Negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)\n\n if (typeof val === 'string') {\n if (val.length === 0) return -1 // special case: looking for empty string always fails\n return String.prototype.indexOf.call(this, val, byteOffset)\n }\n if (Buffer.isBuffer(val)) {\n return arrayIndexOf(this, val, byteOffset)\n }\n if (typeof val === 'number') {\n if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {\n return Uint8Array.prototype.indexOf.call(this, val, byteOffset)\n }\n return arrayIndexOf(this, [ val ], byteOffset)\n }\n\n function arrayIndexOf (arr, val, byteOffset) {\n var foundIndex = -1\n for (var i = 0; byteOffset + i < arr.length; i++) {\n if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex\n } else {\n foundIndex = -1\n }\n }\n return -1\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new Error('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; i++) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) throw new Error('Invalid hex string')\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction binaryWrite (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n var swap = encoding\n encoding = offset\n offset = length | 0\n length = swap\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'binary':\n return binaryWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction binarySlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; i++) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; i++) {\n newBuf[i] = this[i + start]\n }\n }\n\n if (newBuf.length) newBuf.parent = this.parent || this\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('value is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n if (offset < 0) throw new RangeError('index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; i--) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; i++) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// fill(value, start=0, end=buffer.length)\nBuffer.prototype.fill = function fill (value, start, end) {\n if (!value) value = 0\n if (!start) start = 0\n if (!end) end = this.length\n\n if (end < start) throw new RangeError('end < start')\n\n // Fill 0 bytes; we're done\n if (end === start) return\n if (this.length === 0) return\n\n if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')\n if (end < 0 || end > this.length) throw new RangeError('end out of bounds')\n\n var i\n if (typeof value === 'number') {\n for (i = start; i < end; i++) {\n this[i] = value\n }\n } else {\n var bytes = utf8ToBytes(value.toString())\n var len = bytes.length\n for (i = start; i < end; i++) {\n this[i] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; i++) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; i++) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n'use strict';\n\nvar Utf8 = require('utf8');\nvar axios = require('axios');\nvar Base64 = require('base-64');\nvar Promise = require('es6-promise');\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += ((/\\?/).test(url) ? '&' : '?');\n\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for(var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') +\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if ((options.token) || (options.username && options.password)) {\n config.headers.Authorization = options.token ?\n 'token ' + options.token :\n 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config)\n .then(function (response) {\n cb(\n null,\n response.data || true,\n response\n );\n }, function (response) {\n if (response.status === 304) {\n cb(\n null,\n response.data || true,\n response\n );\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '')\n .split(',')\n .filter(function(link) {\n return /rel=\"next\"/.test(link);\n })\n .map(function(link) {\n return (/<(.*)>/.exec(link) || [])[1];\n })\n .pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\n null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [\n {\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }\n ]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [\n parent\n ],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(\n function () {\n that.contributors(cb, retry);\n },\n retry\n );\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\n null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function(owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function(owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function(owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function(options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function(id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function(id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function(id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function(options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function(option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function() {\n this.getRateLimit = function(cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function() {\n return new Github.RateLimit();\n };\n\nmodule.exports = Github;\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.js b/dist/github.js new file mode 100644 index 00000000..b5dd38a2 --- /dev/null +++ b/dist/github.js @@ -0,0 +1,1136 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory); + } else if (typeof exports !== "undefined") { + factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise')); + } else { + var mod = { + exports: {} + }; + factory(mod, global.utf8, global.axios, global.base64, global.Promise); + global.github = mod.exports; + } +})(this, function (module, Utf8, axios, Base64, Promise) { + /*! + * @overview Github.js + * + * @copyright (c) 2013 Michael Aufreiter, Development Seed + * Github.js is freely distributable. + * + * @license Licensed under BSD-3-Clause-Clear + * + * For all details and documentation: + * http://substance.io/michael/github + */ + 'use strict'; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + }; + + function b64encode(string) { + return Base64.encode(Utf8.encode(string)); + } + + if (Promise.polyfill) { + Promise.polyfill(); + } + + // Initial Setup + // ------------- + + function Github(options) { + options = options || {}; + + var API_URL = options.apiUrl || 'https://api.github.com'; + + // HTTP Request Abstraction + // ======= + // + // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec. + + var _request = Github._request = function _request(method, path, data, cb, raw) { + function getURL() { + var url = path.indexOf('//') >= 0 ? path : API_URL + path; + + url += /\?/.test(url) ? '&' : '?'; + + if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) { + for (var param in data) { + if (data.hasOwnProperty(param)) { + url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]); + } + } + } + + return url.replace(/(×tamp=\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : ''); + } + + var config = { + headers: { + Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', + 'Content-Type': 'application/json;charset=UTF-8' + }, + method: method, + data: data ? data : {}, + url: getURL() + }; + + if (options.token || options.username && options.password) { + config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password); + } + + return axios(config).then(function (response) { + cb(null, response.data || true, response); + }, function (response) { + if (response.status === 304) { + cb(null, response.data || true, response); + } else { + cb({ + path: path, + request: response, + error: response.status + }); + } + }); + }; + + var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) { + var results = []; + + (function iterate() { + _request('GET', path, null, function (err, res, xhr) { + if (err) { + return cb(err); + } + + if (!(res instanceof Array)) { + res = [res]; + } + + results.push.apply(results, res); + + var next = (xhr.headers.link || '').split(',').filter(function (link) { + return (/rel="next"/.test(link) + ); + }).map(function (link) { + return (/<(.*)>/.exec(link) || [])[1]; + }).pop(); + + if (!next || singlePage) { + cb(err, results, xhr); + } else { + path = next; + iterate(); + } + }); + })(); + }; + + // User API + // ======= + + Github.User = function () { + this.repos = function (options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + + options = options || {}; + + var url = '/user/repos'; + var params = []; + + params.push('type=' + encodeURIComponent(options.type || 'all')); + params.push('sort=' + encodeURIComponent(options.sort || 'updated')); + params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore + + if (options.page) { + params.push('page=' + encodeURIComponent(options.page)); + } + + url += '?' + params.join('&'); + + _requestAllPages(url, !!options.page, cb); + }; + + // List user organizations + // ------- + + this.orgs = function (cb) { + _request('GET', '/user/orgs', null, cb); + }; + + // List authenticated user's gists + // ------- + + this.gists = function (cb) { + _request('GET', '/gists', null, cb); + }; + + // List authenticated user's unread notifications + // ------- + + this.notifications = function (options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + + options = options || {}; + var url = '/notifications'; + var params = []; + + if (options.all) { + params.push('all=true'); + } + + if (options.participating) { + params.push('participating=true'); + } + + if (options.since) { + var since = options.since; + + if (since.constructor === Date) { + since = since.toISOString(); + } + + params.push('since=' + encodeURIComponent(since)); + } + + if (options.before) { + var before = options.before; + + if (before.constructor === Date) { + before = before.toISOString(); + } + + params.push('before=' + encodeURIComponent(before)); + } + + if (options.page) { + params.push('page=' + encodeURIComponent(options.page)); + } + + if (params.length > 0) { + url += '?' + params.join('&'); + } + + _request('GET', url, null, cb); + }; + + // Show user information + // ------- + + this.show = function (username, cb) { + var command = username ? '/users/' + username : '/user'; + + _request('GET', command, null, cb); + }; + + // List user repositories + // ------- + + this.userRepos = function (username, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + + var url = '/users/' + username + '/repos'; + var params = []; + + params.push('type=' + encodeURIComponent(options.type || 'all')); + params.push('sort=' + encodeURIComponent(options.sort || 'updated')); + params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore + + if (options.page) { + params.push('page=' + encodeURIComponent(options.page)); + } + + url += '?' + params.join('&'); + + _requestAllPages(url, !!options.page, cb); + }; + + // List user starred repositories + // ------- + + this.userStarred = function (username, cb) { + // Github does not always honor the 1000 limit so we want to iterate over the data set. + var request = '/users/' + username + '/starred?type=all&per_page=100'; + _requestAllPages(request, false, cb); + }; + + // List a user's gists + // ------- + + this.userGists = function (username, cb) { + _request('GET', '/users/' + username + '/gists', null, cb); + }; + + // List organization repositories + // ------- + + this.orgRepos = function (orgname, cb) { + // Github does not always honor the 1000 limit so we want to iterate over the data set. + var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc'; + _requestAllPages(request, false, cb); + }; + + // Follow user + // ------- + + this.follow = function (username, cb) { + _request('PUT', '/user/following/' + username, null, cb); + }; + + // Unfollow user + // ------- + + this.unfollow = function (username, cb) { + _request('DELETE', '/user/following/' + username, null, cb); + }; + + // Create a repo + // ------- + this.createRepo = function (options, cb) { + _request('POST', '/user/repos', options, cb); + }; + }; + + // Repository API + // ======= + + Github.Repository = function (options) { + var repo = options.name; + var user = options.user; + var fullname = options.fullname; + + var that = this; + var repoPath; + + if (fullname) { + repoPath = '/repos/' + fullname; + } else { + repoPath = '/repos/' + user + '/' + repo; + } + + var currentTree = { + branch: null, + sha: null + }; + + // Uses the cache if branch has not been changed + // ------- + + function updateTree(branch, cb) { + if (branch === currentTree.branch && currentTree.sha) { + return cb(null, currentTree.sha); + } + + that.getRef('heads/' + branch, function (err, sha) { + currentTree.branch = branch; + currentTree.sha = sha; + cb(err, sha); + }); + } + + // Get a particular reference + // ------- + + this.getRef = function (ref, cb) { + _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) { + if (err) { + return cb(err); + } + + cb(null, res.object.sha, xhr); + }); + }; + + // Create a new reference + // -------- + // + // { + // "ref": "refs/heads/my-new-branch-name", + // "sha": "827efc6d56897b048c772eb4087f854f46256132" + // } + + this.createRef = function (options, cb) { + _request('POST', repoPath + '/git/refs', options, cb); + }; + + // Delete a reference + // -------- + // + // Repo.deleteRef('heads/gh-pages') + // repo.deleteRef('tags/v1.0') + + this.deleteRef = function (ref, cb) { + _request('DELETE', repoPath + '/git/refs/' + ref, options, cb); + }; + + // Delete a repo + // -------- + + this.deleteRepo = function (cb) { + _request('DELETE', repoPath, options, cb); + }; + + // List all tags of a repository + // ------- + + this.listTags = function (cb) { + _request('GET', repoPath + '/tags', null, cb); + }; + + // List all pull requests of a respository + // ------- + + this.listPulls = function (options, cb) { + options = options || {}; + var url = repoPath + '/pulls'; + var params = []; + + if (typeof options === 'string') { + // Backward compatibility + params.push('state=' + options); + } else { + if (options.state) { + params.push('state=' + encodeURIComponent(options.state)); + } + + if (options.head) { + params.push('head=' + encodeURIComponent(options.head)); + } + + if (options.base) { + params.push('base=' + encodeURIComponent(options.base)); + } + + if (options.sort) { + params.push('sort=' + encodeURIComponent(options.sort)); + } + + if (options.direction) { + params.push('direction=' + encodeURIComponent(options.direction)); + } + + if (options.page) { + params.push('page=' + options.page); + } + + if (options.per_page) { + params.push('per_page=' + options.per_page); + } + } + + if (params.length > 0) { + url += '?' + params.join('&'); + } + + _request('GET', url, null, cb); + }; + + // Gets details for a specific pull request + // ------- + + this.getPull = function (number, cb) { + _request('GET', repoPath + '/pulls/' + number, null, cb); + }; + + // Retrieve the changes made between base and head + // ------- + + this.compare = function (base, head, cb) { + _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb); + }; + + // List all branches of a repository + // ------- + + this.listBranches = function (cb) { + _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) { + if (err) { + return cb(err); + } + + heads = heads.map(function (head) { + return head.ref.replace(/^refs\/heads\//, ''); + }); + + cb(null, heads, xhr); + }); + }; + + // Retrieve the contents of a blob + // ------- + + this.getBlob = function (sha, cb) { + _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw'); + }; + + // For a given file path, get the corresponding sha (blob for files, tree for dirs) + // ------- + + this.getCommit = function (branch, sha, cb) { + _request('GET', repoPath + '/git/commits/' + sha, null, cb); + }; + + // For a given file path, get the corresponding sha (blob for files, tree for dirs) + // ------- + + this.getSha = function (branch, path, cb) { + if (!path || path === '') { + return that.getRef('heads/' + branch, cb); + } + + _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) { + if (err) { + return cb(err); + } + + cb(null, pathContent.sha, xhr); + }); + }; + + // Get the statuses for a particular SHA + // ------- + + this.getStatuses = function (sha, cb) { + _request('GET', repoPath + '/statuses/' + sha, null, cb); + }; + + // Retrieve the tree a commit points to + // ------- + + this.getTree = function (tree, cb) { + _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) { + if (err) { + return cb(err); + } + + cb(null, res.tree, xhr); + }); + }; + + // Post a new blob object, getting a blob SHA back + // ------- + + this.postBlob = function (content, cb) { + if (typeof content === 'string') { + content = { + content: Utf8.encode(content), + encoding: 'utf-8' + }; + } else { + if (typeof Buffer !== 'undefined' && content instanceof Buffer) { + // in NodeJS + content = { + content: content.toString('base64'), + encoding: 'base64' + }; + } else if (typeof Blob !== 'undefined' && content instanceof Blob) { + content = { + content: b64encode(content), + encoding: 'base64' + }; + } else { + throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)'); + } + } + + _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) { + if (err) { + return cb(err); + } + + cb(null, res.sha, xhr); + }); + }; + + // Update an existing tree adding a new blob object getting a tree SHA back + // ------- + + this.updateTree = function (baseTree, path, blob, cb) { + var data = { + base_tree: baseTree, + tree: [{ + path: path, + mode: '100644', + type: 'blob', + sha: blob + }] + }; + + _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) { + if (err) { + return cb(err); + } + + cb(null, res.sha, xhr); + }); + }; + + // Post a new tree object having a file path pointer replaced + // with a new blob SHA getting a tree SHA back + // ------- + + this.postTree = function (tree, cb) { + _request('POST', repoPath + '/git/trees', { + tree: tree + }, function (err, res, xhr) { + if (err) { + return cb(err); + } + + cb(null, res.sha, xhr); + }); + }; + + // Create a new commit object with the current commit SHA as the parent + // and the new tree SHA, getting a commit SHA back + // ------- + + this.commit = function (parent, tree, message, cb) { + var user = new Github.User(); + + user.show(null, function (err, userData) { + if (err) { + return cb(err); + } + + var data = { + message: message, + author: { + name: options.user, + email: userData.email + }, + parents: [parent], + tree: tree + }; + + _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) { + if (err) { + return cb(err); + } + + currentTree.sha = res.sha; // Update latest commit + + cb(null, res.sha, xhr); + }); + }); + }; + + // Update the reference of your head to point to the new commit SHA + // ------- + + this.updateHead = function (head, commit, cb) { + _request('PATCH', repoPath + '/git/refs/heads/' + head, { + sha: commit + }, cb); + }; + + // Show repository information + // ------- + + this.show = function (cb) { + _request('GET', repoPath, null, cb); + }; + + // Show repository contributors + // ------- + + this.contributors = function (cb, retry) { + retry = retry || 1000; + var that = this; + + _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) { + if (err) { + return cb(err); + } + + if (xhr.status === 202) { + setTimeout(function () { + that.contributors(cb, retry); + }, retry); + } else { + cb(err, data, xhr); + } + }); + }; + + // Get contents + // -------- + + this.contents = function (ref, path, cb) { + path = encodeURI(path); + _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), { + ref: ref + }, cb); + }; + + // Fork repository + // ------- + + this.fork = function (cb) { + _request('POST', repoPath + '/forks', null, cb); + }; + + // List forks + // -------- + + this.listForks = function (cb) { + _request('GET', repoPath + '/forks', null, cb); + }; + + // Branch repository + // -------- + + this.branch = function (oldBranch, newBranch, cb) { + if (arguments.length === 2 && typeof arguments[1] === 'function') { + cb = newBranch; + newBranch = oldBranch; + oldBranch = 'master'; + } + + this.getRef('heads/' + oldBranch, function (err, ref) { + if (err && cb) { + return cb(err); + } + + that.createRef({ + ref: 'refs/heads/' + newBranch, + sha: ref + }, cb); + }); + }; + + // Create pull request + // -------- + + this.createPullRequest = function (options, cb) { + _request('POST', repoPath + '/pulls', options, cb); + }; + + // List hooks + // -------- + + this.listHooks = function (cb) { + _request('GET', repoPath + '/hooks', null, cb); + }; + + // Get a hook + // -------- + + this.getHook = function (id, cb) { + _request('GET', repoPath + '/hooks/' + id, null, cb); + }; + + // Create a hook + // -------- + + this.createHook = function (options, cb) { + _request('POST', repoPath + '/hooks', options, cb); + }; + + // Edit a hook + // -------- + + this.editHook = function (id, options, cb) { + _request('PATCH', repoPath + '/hooks/' + id, options, cb); + }; + + // Delete a hook + // -------- + + this.deleteHook = function (id, cb) { + _request('DELETE', repoPath + '/hooks/' + id, null, cb); + }; + + // Read file at given path + // ------- + + this.read = function (branch, path, cb) { + _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true); + }; + + // Remove a file + // ------- + + this.remove = function (branch, path, cb) { + that.getSha(branch, path, function (err, sha) { + if (err) { + return cb(err); + } + + _request('DELETE', repoPath + '/contents/' + path, { + message: path + ' is removed', + sha: sha, + branch: branch + }, cb); + }); + }; + + // Alias for repo.remove for backwards comapt. + // ------- + this.delete = this.remove; + + // Move a file to a new location + // ------- + + this.move = function (branch, path, newPath, cb) { + updateTree(branch, function (err, latestCommit) { + that.getTree(latestCommit + '?recursive=true', function (err, tree) { + // Update Tree + tree.forEach(function (ref) { + if (ref.path === path) { + ref.path = newPath; + } + + if (ref.type === 'tree') { + delete ref.sha; + } + }); + + that.postTree(tree, function (err, rootTree) { + that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) { + that.updateHead(branch, commit, cb); + }); + }); + }); + }); + }; + + // Write file contents to a given branch and path + // ------- + + this.write = function (branch, path, content, message, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + + that.getSha(branch, encodeURI(path), function (err, sha) { + var writeOptions = { + message: message, + content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content, + branch: branch, + committer: options && options.committer ? options.committer : undefined, + author: options && options.author ? options.author : undefined + }; + + // If no error, we set the sha to overwrite an existing file + if (!(err && err.error !== 404)) { + writeOptions.sha = sha; + } + + _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb); + }); + }; + + // List commits on a repository. Takes an object of optional parameters: + // sha: SHA or branch to start listing commits from + // path: Only commits containing this file path will be returned + // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address + // since: ISO 8601 date - only commits after this date will be returned + // until: ISO 8601 date - only commits before this date will be returned + // ------- + + this.getCommits = function (options, cb) { + options = options || {}; + var url = repoPath + '/commits'; + var params = []; + + if (options.sha) { + params.push('sha=' + encodeURIComponent(options.sha)); + } + + if (options.path) { + params.push('path=' + encodeURIComponent(options.path)); + } + + if (options.author) { + params.push('author=' + encodeURIComponent(options.author)); + } + + if (options.since) { + var since = options.since; + + if (since.constructor === Date) { + since = since.toISOString(); + } + + params.push('since=' + encodeURIComponent(since)); + } + + if (options.until) { + var until = options.until; + + if (until.constructor === Date) { + until = until.toISOString(); + } + + params.push('until=' + encodeURIComponent(until)); + } + + if (options.page) { + params.push('page=' + options.page); + } + + if (options.perpage) { + params.push('per_page=' + options.perpage); + } + + if (params.length > 0) { + url += '?' + params.join('&'); + } + + _request('GET', url, null, cb); + }; + + // Check if a repository is starred. + // -------- + + this.isStarred = function (owner, repository, cb) { + _request('GET', '/user/starred/' + owner + '/' + repository, null, cb); + }; + + // Star a repository. + // -------- + + this.star = function (owner, repository, cb) { + _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); + }; + + // Unstar a repository. + // -------- + + this.unstar = function (owner, repository, cb) { + _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); + }; + + // Create a new release + // -------- + + this.createRelease = function (options, cb) { + _request('POST', repoPath + '/releases', options, cb); + }; + + // Edit a release + // -------- + + this.editRelease = function (id, options, cb) { + _request('PATCH', repoPath + '/releases/' + id, options, cb); + }; + + // Get a single release + // -------- + + this.getRelease = function (id, cb) { + _request('GET', repoPath + '/releases/' + id, null, cb); + }; + + // Remove a release + // -------- + + this.deleteRelease = function (id, cb) { + _request('DELETE', repoPath + '/releases/' + id, null, cb); + }; + }; + + // Gists API + // ======= + + Github.Gist = function (options) { + var id = options.id; + var gistPath = '/gists/' + id; + + // Read the gist + // -------- + + this.read = function (cb) { + _request('GET', gistPath, null, cb); + }; + + // Create the gist + // -------- + // { + // "description": "the description for this gist", + // "public": true, + // "files": { + // "file1.txt": { + // "content": "String file contents" + // } + // } + // } + + this.create = function (options, cb) { + _request('POST', '/gists', options, cb); + }; + + // Delete the gist + // -------- + + this.delete = function (cb) { + _request('DELETE', gistPath, null, cb); + }; + + // Fork a gist + // -------- + + this.fork = function (cb) { + _request('POST', gistPath + '/fork', null, cb); + }; + + // Update a gist with the new stuff + // -------- + + this.update = function (options, cb) { + _request('PATCH', gistPath, options, cb); + }; + + // Star a gist + // -------- + + this.star = function (cb) { + _request('PUT', gistPath + '/star', null, cb); + }; + + // Untar a gist + // -------- + + this.unstar = function (cb) { + _request('DELETE', gistPath + '/star', null, cb); + }; + + // Check if a gist is starred + // -------- + + this.isStarred = function (cb) { + _request('GET', gistPath + '/star', null, cb); + }; + }; + + // Issues API + // ========== + + Github.Issue = function (options) { + var path = '/repos/' + options.user + '/' + options.repo + '/issues'; + + this.create = function (options, cb) { + _request('POST', path, options, cb); + }; + + this.list = function (options, cb) { + var query = []; + + Object.keys(options).forEach(function (option) { + query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option])); + }); + + _requestAllPages(path + '?' + query.join('&'), !!options.page, cb); + }; + + this.comment = function (issue, comment, cb) { + _request('POST', issue.comments_url, { + body: comment + }, cb); + }; + + this.edit = function (issue, options, cb) { + _request('PATCH', path + '/' + issue, options, cb); + }; + + this.get = function (issue, cb) { + _request('GET', path + '/' + issue, null, cb); + }; + }; + + // Search API + // ========== + + Github.Search = function (options) { + var path = '/search/'; + var query = '?q=' + options.query; + + this.repositories = function (options, cb) { + _request('GET', path + 'repositories' + query, options, cb); + }; + + this.code = function (options, cb) { + _request('GET', path + 'code' + query, options, cb); + }; + + this.issues = function (options, cb) { + _request('GET', path + 'issues' + query, options, cb); + }; + + this.users = function (options, cb) { + _request('GET', path + 'users' + query, options, cb); + }; + }; + + // Rate Limit API + // ========== + + Github.RateLimit = function () { + this.getRateLimit = function (cb) { + _request('GET', '/rate_limit', null, cb); + }; + }; + + return Github; + }; + + // Top Level API + // ------- + + Github.getIssues = function (user, repo) { + return new Github.Issue({ + user: user, + repo: repo + }); + }; + + Github.getRepo = function (user, repo) { + if (!repo) { + return new Github.Repository({ + fullname: user + }); + } else { + return new Github.Repository({ + user: user, + name: repo + }); + } + }; + + Github.getUser = function () { + return new Github.User(); + }; + + Github.getGist = function (id) { + return new Github.Gist({ + id: id + }); + }; + + Github.getSearch = function (query) { + return new Github.Search({ + query: query + }); + }; + + Github.getRateLimit = function () { + return new Github.RateLimit(); + }; + + module.exports = Github; +}); +//# sourceMappingURL=github.js.map diff --git a/dist/github.js.map b/dist/github.js.map new file mode 100644 index 00000000..eb15fe9e --- /dev/null +++ b/dist/github.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"mappings":"","sources":["github.js"],"sourcesContent":["(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.utf8, global.axios, global.base64, global.Promise);\n global.github = mod.exports;\n }\n})(this, function (module, Utf8, axios, Base64, Promise) {\n /*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += /\\?/.test(url) ? '&' : '?';\n\n if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for (var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if (options.token || options.username && options.password) {\n config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config).then(function (response) {\n cb(null, response.data || true, response);\n }, function (response) {\n if (response.status === 304) {\n cb(null, response.data || true, response);\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '').split(',').filter(function (link) {\n return (/rel=\"next\"/.test(link)\n );\n }).map(function (link) {\n return (/<(.*)>/.exec(link) || [])[1];\n }).pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [{\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [parent],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(function () {\n that.contributors(cb, retry);\n }, retry);\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function (owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function (owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function (owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function (options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function (id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function (id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function (id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function (options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function (option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function () {\n this.getRateLimit = function (cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function () {\n return new Github.RateLimit();\n };\n\n module.exports = Github;\n});"],"file":"github.js","sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.min.js b/dist/github.min.js new file mode 100644 index 00000000..da59303e --- /dev/null +++ b/dist/github.min.js @@ -0,0 +1,2 @@ +!function(e,t){if("function"==typeof define&&define.amd)define(["module","utf8","axios","base-64","es6-promise"],t);else if("undefined"!=typeof exports)t(module,require("utf8"),require("axios"),require("base-64"),require("es6-promise"));else{var n={exports:{}};t(n,e.utf8,e.axios,e.base64,e.Promise),e.github=n.exports}}(this,function(e,t,n,o,s){"use strict";function i(e){return o.encode(t.encode(e))}function u(e){e=e||{};var o=e.apiUrl||"https://api.github.com",s=u._request=function(t,s,u,a,c){function f(){var e=s.indexOf("//")>=0?s:o+s;if(e+=/\?/.test(e)?"&":"?",u&&"object"===("undefined"==typeof u?"undefined":r(u))&&["GET","HEAD","DELETE"].indexOf(t)>-1)for(var n in u)u.hasOwnProperty(n)&&(e+="&"+encodeURIComponent(n)+"="+encodeURIComponent(u[n]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:c?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:t,data:u?u:{},url:f()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+i(e.username+":"+e.password)),n(l).then(function(e){a(null,e.data||!0,e)},function(e){304===e.status?a(null,e.data||!0,e):a({path:s,request:e,error:e.status})})},a=u._requestAllPages=function(e,t,n){var o=[];!function i(){s("GET",e,null,function(s,u,r){if(s)return n(s);u instanceof Array||(u=[u]),o.push.apply(o,u);var a=(r.headers.link||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();!a||t?n(s,o,r):(e=a,i())})}()};return u.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),a(n,!!e.page,t)},this.orgs=function(e){s("GET","/user/orgs",null,e)},this.gists=function(e){s("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var u=e.before;u.constructor===Date&&(u=u.toISOString()),o.push("before="+encodeURIComponent(u))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(n+="?"+o.join("&")),s("GET",n,null,t)},this.show=function(e,t){var n=e?"/users/"+e:"/user";s("GET",n,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),a(o,!!t.page,n)},this.userStarred=function(e,t){var n="/users/"+e+"/starred?type=all&per_page=100";a(n,!1,t)},this.userGists=function(e,t){s("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){var n="/orgs/"+e+"/repos?type=all&&page_num=100&sort=updated&direction=desc";a(n,!1,t)},this.follow=function(e,t){s("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){s("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){s("POST","/user/repos",e,t)}},u.Repository=function(e){function n(e,t){return e===l.branch&&l.sha?t(null,l.sha):void f.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,r=e.name,a=e.user,c=e.fullname,f=this;o=c?"/repos/"+c:"/repos/"+a+"/"+r;var l={branch:null,sha:null};this.getRef=function(e,t){s("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){s("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,n){s("DELETE",o+"/git/refs/"+t,e,n)},this.deleteRepo=function(t){s("DELETE",o,e,t)},this.listTags=function(e){s("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var n=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(n+="?"+i.join("&")),s("GET",n,null,t)},this.getPull=function(e,t){s("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,n){s("GET",o+"/compare/"+e+"..."+t,null,n)},this.listBranches=function(e){s("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){s("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,n){s("GET",o+"/git/commits/"+t,null,n)},this.getSha=function(e,t,n){return t&&""!==t?void s("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,o){return e?n(e):void n(null,t.sha,o)}):f.getRef("heads/"+e,n)},this.getStatuses=function(e,t){s("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){s("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,n){if("string"==typeof e)e={content:t.encode(e),encoding:"utf-8"};else if("undefined"!=typeof Buffer&&e instanceof Buffer)e={content:e.toString("base64"),encoding:"base64"};else{if(!("undefined"!=typeof Blob&&e instanceof Blob))throw new Error("Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)");e={content:i(e),encoding:"base64"}}s("POST",o+"/git/blobs",e,function(e,t,o){return e?n(e):void n(null,t.sha,o)})},this.updateTree=function(e,t,n,i){var u={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:n}]};s("POST",o+"/git/trees",u,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){s("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,n,i,r){var a=new u.User;a.show(null,function(u,a){if(u)return r(u);var c={message:i,author:{name:e.user,email:a.email},parents:[t],tree:n};s("POST",o+"/git/commits",c,function(e,t,n){return e?r(e):(l.sha=t.sha,void r(null,t.sha,n))})})},this.updateHead=function(e,t,n){s("PATCH",o+"/git/refs/heads/"+e,{sha:t},n)},this.show=function(e){s("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var n=this;s("GET",o+"/stats/contributors",null,function(o,s,i){return o?e(o):void(202===i.status?setTimeout(function(){n.contributors(e,t)},t):e(o,s,i))})},this.contents=function(e,t,n){t=encodeURI(t),s("GET",o+"/contents"+(t?"/"+t:""),{ref:e},n)},this.fork=function(e){s("POST",o+"/forks",null,e)},this.listForks=function(e){s("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void f.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){s("POST",o+"/pulls",e,t)},this.listHooks=function(e){s("GET",o+"/hooks",null,e)},this.getHook=function(e,t){s("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){s("POST",o+"/hooks",e,t)},this.editHook=function(e,t,n){s("PATCH",o+"/hooks/"+e,t,n)},this.deleteHook=function(e,t){s("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,n){s("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,n,!0)},this.remove=function(e,t,n){f.getSha(e,t,function(i,u){return i?n(i):void s("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:u,branch:e},n)})},this["delete"]=this.remove,this.move=function(e,t,o,s){n(e,function(n,i){f.getTree(i+"?recursive=true",function(n,u){u.forEach(function(e){e.path===t&&(e.path=o),"tree"===e.type&&delete e.sha}),f.postTree(u,function(n,o){f.commit(i,o,"Deleted "+t,function(t,n){f.updateHead(e,n,s)})})})})},this.write=function(e,t,n,u,r,a){"function"==typeof r&&(a=r,r={}),f.getSha(e,encodeURI(t),function(c,f){var l={message:u,content:"undefined"==typeof r.encode||r.encode?i(n):n,branch:e,committer:r&&r.committer?r.committer:void 0,author:r&&r.author?r.author:void 0};c&&404!==c.error||(l.sha=f),s("PUT",o+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var n=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var u=e.since;u.constructor===Date&&(u=u.toISOString()),i.push("since="+encodeURIComponent(u))}if(e.until){var r=e.until;r.constructor===Date&&(r=r.toISOString()),i.push("until="+encodeURIComponent(r))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(n+="?"+i.join("&")),s("GET",n,null,t)},this.isStarred=function(e,t,n){s("GET","/user/starred/"+e+"/"+t,null,n)},this.star=function(e,t,n){s("PUT","/user/starred/"+e+"/"+t,null,n)},this.unstar=function(e,t,n){s("DELETE","/user/starred/"+e+"/"+t,null,n)},this.createRelease=function(e,t){s("POST",o+"/releases",e,t)},this.editRelease=function(e,t,n){s("PATCH",o+"/releases/"+e,t,n)},this.getRelease=function(e,t){s("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){s("DELETE",o+"/releases/"+e,null,t)}},u.Gist=function(e){var t=e.id,n="/gists/"+t;this.read=function(e){s("GET",n,null,e)},this.create=function(e,t){s("POST","/gists",e,t)},this["delete"]=function(e){s("DELETE",n,null,e)},this.fork=function(e){s("POST",n+"/fork",null,e)},this.update=function(e,t){s("PATCH",n,e,t)},this.star=function(e){s("PUT",n+"/star",null,e)},this.unstar=function(e){s("DELETE",n+"/star",null,e)},this.isStarred=function(e){s("GET",n+"/star",null,e)}},u.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,n){s("POST",t,e,n)},this.list=function(e,n){var o=[];Object.keys(e).forEach(function(t){o.push(encodeURIComponent(t)+"="+encodeURIComponent(e[t]))}),a(t+"?"+o.join("&"),!!e.page,n)},this.comment=function(e,t,n){s("POST",e.comments_url,{body:t},n)},this.edit=function(e,n,o){s("PATCH",t+"/"+e,n,o)},this.get=function(e,n){s("GET",t+"/"+e,null,n)}},u.Search=function(e){var t="/search/",n="?q="+e.query;this.repositories=function(e,o){s("GET",t+"repositories"+n,e,o)},this.code=function(e,o){s("GET",t+"code"+n,e,o)},this.issues=function(e,o){s("GET",t+"issues"+n,e,o)},this.users=function(e,o){s("GET",t+"users"+n,e,o)}},u.RateLimit=function(){this.getRateLimit=function(e){s("GET","/rate_limit",null,e)}},u}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};s.polyfill&&s.polyfill(),u.getIssues=function(e,t){return new u.Issue({user:e,repo:t})},u.getRepo=function(e,t){return t?new u.Repository({user:e,name:t}):new u.Repository({fullname:e})},u.getUser=function(){return new u.User},u.getGist=function(e){return new u.Gist({id:e})},u.getSearch=function(e){return new u.Search({query:e})},u.getRateLimit=function(){return new u.RateLimit},e.exports=u}); +//# sourceMappingURL=github.min.js.map diff --git a/dist/github.min.js.map b/dist/github.min.js.map new file mode 100644 index 00000000..5d426aa9 --- /dev/null +++ b/dist/github.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["github.min.js"],"names":["global","factory","define","amd","exports","module","require","mod","utf8","axios","base64","Promise","github","this","Utf8","Base64","b64encode","string","encode","Github","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","_typeof","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","token","username","password","Authorization","then","response","status","request","error","_requestAllPages","singlePage","results","iterate","err","res","xhr","Array","push","apply","next","link","split","filter","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","Buffer","toString","Blob","Error","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","Object","keys","option","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","Symbol","iterator","obj","polyfill","getIssues","getRepo","getUser","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.utf8, global.axios, global.base64, global.Promise);\n global.github = mod.exports;\n }\n})(this, function (module, Utf8, axios, Base64, Promise) {\n /*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += /\\?/.test(url) ? '&' : '?';\n\n if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for (var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if (options.token || options.username && options.password) {\n config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config).then(function (response) {\n cb(null, response.data || true, response);\n }, function (response) {\n if (response.status === 304) {\n cb(null, response.data || true, response);\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '').split(',').filter(function (link) {\n return (/rel=\"next\"/.test(link)\n );\n }).map(function (link) {\n return (/<(.*)>/.exec(link) || [])[1];\n }).pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [{\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [parent],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(function () {\n that.contributors(cb, retry);\n }, retry);\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function (owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function (owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function (owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function (options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function (id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function (id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function (id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function (options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function (option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function () {\n this.getRateLimit = function (cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function () {\n return new Github.RateLimit();\n };\n\n module.exports = Github;\n});"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 4da37a2b..801abddc 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,110 +1,69 @@ 'use strict'; var gulp = require('gulp'); -var jshint = require('gulp-jshint'); + +var babel = require('gulp-babel'); +var istanbul = require('gulp-istanbul'); var jscs = require('gulp-jscs'); +var jshint = require('gulp-jshint'); + +var mocha = require('gulp-mocha'); var rename = require('gulp-rename'); +var stylish = require('gulp-jscs-stylish'); + var browserify = require('browserify'); -var source = require('vinyl-source-stream'); var buffer = require('vinyl-buffer'); -var uglify = require('gulp-uglify'); -var sourcemaps = require('gulp-sourcemaps'); var del = require('del'); -var stylish = require('gulp-jscs-stylish'); var path = require('path'); -var karma = require('karma'); -var babel = require('gulp-babel'); - -function runTests(singleRun, isCI, done) { - var reporters = ['mocha']; - var preprocessors = {}; - - var files = [ - path.join(__dirname, 'test/vendor/*.js'), // PhantomJS 1.x polyfills - path.join(__dirname, 'test/test.*.js') - ]; - - if (singleRun) { - preprocessors['test/test.*.js'] = ['browserify']; - reporters.push('coverage'); - } - - files.push({ - pattern: path.join(__dirname, 'test/gh.png'), - watched: false, - included: false - }); - - var localConfig = { - files: files, - configFile: path.join(__dirname, './karma.conf.js'), - singleRun: singleRun, - autoWatch: !singleRun, - reporters: reporters, - preprocessors: preprocessors - }; - - if (isCI) { - localConfig.sauceLabs = { - testName: 'GitHub.js UAT tests', - idleTimeout: 120000, - recordVideo: false - }; - - // Increase timeouts massively so Karma doesn't timeout in Sauce tunnel. - localConfig.browserNoActivityTimeout = 400000; - localConfig.captureTimeout = 120000; - localConfig.customLaunchers = sauceLaunchers; - localConfig.browsers = Object.keys(sauceLaunchers); - reporters.push('saucelabs'); - - // Set Mocha timeouts to longer. - localConfig.client = { - mocha: { - timeout: 20000 - } - }; - } - - var server = new karma.Server(localConfig, function(failCount) { - done(failCount ? new Error('Failed ' + failCount + ' tests.') : null); - }); - - server.start(); -} // End runTests() +var Promise = require('es6-promise').Promise; +var source = require('vinyl-source-stream'); +var sourcemaps = require('gulp-sourcemaps'); +var uglify = require('gulp-uglify'); gulp.task('lint', function() { - return gulp.src([ + var sources = [ path.join(__dirname, '/*.js'), path.join(__dirname, '/src/*.js'), path.join(__dirname, '/test/*.js') - ], - { + ]; + var opts = { base: './' - }) - .pipe(jshint()) - .pipe(jscs({ - fix: true - })) - .pipe(stylish.combineWithHintResults()) - .pipe(jscs.reporter()) - .pipe(jshint.reporter('jshint-stylish')) - .pipe(gulp.dest('.')); -}); + }; -gulp.task('test', function(done) { - runTests(true, false, done); + return gulp.src(sources, opts) + .pipe(jshint()) + .pipe(jscs()) + .pipe(stylish.combineWithHintResults()) + .pipe(jscs.reporter()) + .pipe(jshint.reporter('jshint-stylish')) + .pipe(gulp.dest('.')) + ; }); -gulp.task('test:ci', function(done) { - runTests(true, true, done); +gulp.task('coverage', function() { + return gulp.src('src/**/*.js') + .pipe(istanbul()) + .pipe(istanbul.hookRequire()) + ; }); -gulp.task('test:auto', function(done) { - runTests(false, false, done); +gulp.task('test:mocha', ['coverage'], function() { + var srcOpts = { + read: false + }; + var mochaOpts = { + timeout: 30000, + slow: 5000 + }; + + return gulp.src('test/test.*.js', srcOpts) + .pipe(mocha(mochaOpts)) + .pipe(istanbul.writeReports()) + ; }); -gulp.task('clean', function () { - return del('dist/*'); + +gulp.task('clean', function() { + return Promise.all([del('dist/*'), del('coverage/*')]); }); gulp.task('build', function() { @@ -130,17 +89,15 @@ gulp.task('build', function() { .pipe(gulp.dest('dist')) ; - var babeled = gulp.src('src/github.js') + gulp.src('src/github.js') .pipe(babel()) - ; - - babeled .pipe(sourcemaps.init()) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('dist')) ; - return babeled + return gulp.src('src/github.js') + .pipe(babel()) .pipe(sourcemaps.init()) .pipe(rename({ extname: '.min.js' @@ -152,48 +109,5 @@ gulp.task('build', function() { }); gulp.task('default', ['clean'], function() { - gulp.start('lint', 'test', 'build'); + gulp.start('lint', 'test:mocha', 'build'); }); - -var sauceLaunchers = { - SL_Chrome: { - base: 'SauceLabs', - browserName: 'chrome', - version: '45' - }, - SL_Firefox: { - base: 'SauceLabs', - browserName: 'firefox', - version: '39' - }, - SL_Safari: { - base: 'SauceLabs', - browserName: 'safari', - platform: 'OS X 10.10', - version: '8' - }, - SL_IE_9: { - base: 'SauceLabs', - browserName: 'internet explorer', - platform: 'Windows 7', - version: '9' - }, - SL_IE_10: { - base: 'SauceLabs', - browserName: 'internet explorer', - platform: 'Windows 2012', - version: '10' - }, - SL_IE_11: { - base: 'SauceLabs', - browserName: 'internet explorer', - platform: 'Windows 8.1', - version: '11' - }, - SL_iOS: { - base: 'SauceLabs', - browserName: 'iphone', - platform: 'OS X 10.10', - version: '8.1' - } -}; diff --git a/package.json b/package.json index f5fdb956..30c2abfc 100644 --- a/package.json +++ b/package.json @@ -15,38 +15,31 @@ "babelify": "^7.2.0", "browserify": "^13.0.0", "browserify-istanbul": "^0.2.1", - "chai": "^3.4.1", "codecov": "^1.0.1", "del": "^2.2.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.2", + "gulp-istanbul": "^0.10.3", "gulp-jscs": "^3.0.2", "gulp-jscs-stylish": "^1.3.0", "gulp-jshint": "^2.0.0", + "gulp-mocha": "^2.2.0", "gulp-rename": "^1.2.2", "gulp-sourcemaps": "^1.6.0", "gulp-uglify": "^1.5.1", "istanbul": "^0.4.2", "jshint": "^2.9.1", "jshint-stylish": "^2.1.0", - "karma": "^0.13.19", - "karma-browserify": "^4.4.2", - "karma-chai": "^0.1.0", - "karma-coverage": "^0.5.3", - "karma-json-fixtures-preprocessor": "0.0.6", - "karma-mocha": "^0.2.1", - "karma-mocha-reporter": "^1.1.5", - "karma-phantomjs-launcher": "^0.2.3", - "karma-sauce-launcher": "^0.3.0", "mocha": "^2.3.4", - "phantomjs": "^2.1.3", + "must": "^0.13.1", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0" }, "scripts": { "test": "gulp test && gulp lint", "lint": "gulp lint", - "codecov": "cat coverage/*/lcov.info | codecov" + "codecov": "node_modules/.bin/codecov", + "show-coverage-html": "open coverage/lcov-report/index.html" }, "repository": { "type": "git", diff --git a/src/github.js b/src/github.js index d8d57f26..3fa635d2 100644 --- a/src/github.js +++ b/src/github.js @@ -78,7 +78,7 @@ function Github(options) { cb( null, response.data || true, - response.request + response ); } else { cb({ diff --git a/test/.jshintrc b/test/.jshintrc new file mode 100644 index 00000000..910bdea2 --- /dev/null +++ b/test/.jshintrc @@ -0,0 +1,9 @@ +{ + "browser": true, + "mocha": true, + "node": true, + "globals": { + "require": false, + "define": false + } +} diff --git a/test/gh.png b/test/fixtures/gh.png similarity index 100% rename from test/gh.png rename to test/fixtures/gh.png diff --git a/test/fixtures/gist.json b/test/fixtures/gist.json new file mode 100644 index 00000000..7a78e6e7 --- /dev/null +++ b/test/fixtures/gist.json @@ -0,0 +1,9 @@ +{ + "description": "This is a test gist", + "public": true, + "files": { + "README.md": { + "content": "Hello World" + } + } +} diff --git a/test/fixtures/imageBlob.js b/test/fixtures/imageBlob.js new file mode 100644 index 00000000..c8f295e4 --- /dev/null +++ b/test/fixtures/imageBlob.js @@ -0,0 +1,55 @@ +'use strict'; + +function loadImage(imageReady) { + if (typeof window === 'undefined') { // We're in NodeJS + loadInNode(imageReady); + } else { // We're in the browser + if (typeof window._phantom !== 'undefined') { + loadInPhantom(imageReady); + } else { + loadInRealBrowser(imageReady); + } + } +} + +function loadInNode(imageReady) { + var fs = require('fs'); + var path = require('path'); + + var imageBlob = fs.readFileSync(path.join(__dirname, 'gh.png')); // This is a Buffer(). + var imageB64 = imageBlob.toString('base64'); + + imageReady(imageB64, imageBlob); +} + +function loadInPhantom(imageReady) { + var xhr = new XMLHttpRequest(); + + xhr.responseType = 'blob'; + xhr.open('GET', 'base/test/fixtures/gh.png'); + xhr.onload = function() { + var reader = new FileReader(); + + reader.onloadend = function() { + var imageB64 = btoa(reader.result); + var imageBlob = reader.result; + + imageReady(imageB64, imageBlob); + }; + + reader.readAsBinaryString(xhr.response); + }; + + xhr.send(); +} + +function loadInRealBrowser(imageReady) { + // jscs:disable + var imageB64 = 'iVBORw0KGgoAAAANSUhEUgAAACsAAAAmCAAAAAB4qD3CAAABgElEQVQ4y9XUsUocURQGYN/pAyMWBhGtrEIMiFiooGuVIoYsSBAsRSQvYGFWC4uFhUBYsilXLERQsDA20YAguIbo5PQp3F3inVFTheSvZoavGO79z+mJP0/Pv2nPtlfLpfLq9tljNquO62S8mj1kmy/8nrHm/Xaz1930bt5n1+SzVmyrilItsod9ON0td1V59xR9hwV2HsMRsbfROLo4amzsRcQw5vO2CZPJEU5CM2cXYTCxg7CY2mwIVhK7AkNZYg9g4CqxVwNwkNg6zOTKMQP1xFZgKWeXoJLYdSjl7BysJ7YBIzk7Ap8TewLOE3oOTtIz6y/64bfQn55ZTIAPd2gNTOTurcbzp7z50v1y/Pq2Q7Wczca8vFjG6LvbMo92hiPL96xO+eYVPkVExMdONetFXZ+l+eP9cuV7RER8a9PZwrloTXv2tfv285ZOt4rnrTXlydxCu9sZmGrdN8eXC3ATERHXsHD5wC7ZL3HdsaX9R3bUzlb7YWvn/9ipf93+An8cHsx3W3WHAAAAAElFTkSuQmCC'; + var imageBlob = new Blob(); + // jscs:enable + + imageReady(imageB64, imageBlob); +} + +module.exports = loadImage; diff --git a/test/user.json b/test/fixtures/user.json similarity index 100% rename from test/user.json rename to test/fixtures/user.json diff --git a/test/helpers.js b/test/helpers.js new file mode 100644 index 00000000..d85f3f94 --- /dev/null +++ b/test/helpers.js @@ -0,0 +1,49 @@ +'use strict'; + +var expect = require('must'); +var STANDARD_DELAY = 200; // 200ms between nested calls to the API so things settle + +function assertSuccessful(done, cb) { + return function(err, res, xhr) { + try { + expect(err).not.to.exist(); + expect(res).to.exist(); + expect(xhr).to.be.an.object(); + + if (cb) { + setTimeout(function () { + cb(err, res, xhr); + }, STANDARD_DELAY); + } else { + done(); + } + } catch(e) { + done(e); + } + }; +} + +function assertFailure(done, cb) { + return function(err) { + try { + expect(err).to.exist(); + expect(err).to.have.ownProperty('path'); + expect(err.request).to.exist(); + + if (cb) { + setTimeout(function () { + cb(err); + }, STANDARD_DELAY); + } else { + done(); + } + } catch(e) { + done(e); + } + }; +} + +module.exports = { + assertSuccessful: assertSuccessful, + assertFailure: assertFailure +}; diff --git a/test/test.auth.js b/test/test.auth.js index 154a3cae..09d0cc0b 100644 --- a/test/test.auth.js +++ b/test/test.auth.js @@ -1,59 +1,96 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github, user; -describe('Github constructor', function() { - before(function() { - github = new Github({ - username: testUser.USERNAME, - password: testUser.PASSWORD, - auth: 'basic' +var expect = require('must'); +var testUser = require('./fixtures/user.json'); +var assertSuccessful = require('./helpers').assertSuccessful; +var assertFailure = require('./helpers').assertFailure; + +describe('Github', function() { + var github, user; + + describe('with authentication', function() { + before(function() { + github = new Github({ + username: testUser.USERNAME, + password: testUser.PASSWORD, + auth: 'basic' + }); + + user = github.getUser(); }); - user = github.getUser(); - }); + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); + }); - it('should authenticate and return no errors', function(done) { - user.notifications(function(err) { - should.not.exist(err); - done(); + it('should authenticate and return no errors', function(done) { + user.notifications(assertSuccessful(done)); }); }); -}); -describe('Github constructor without authentication data', function() { - it('should read public information', function(done) { - var github = new Github(); - var gist = github.getGist('f1c0f84e53aa6b98ec03'); + describe('without authentication', function() { + before(function() { + github = new Github(); + }); + + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); + }); + + it('should read public information', function(done) { + var gist = github.getGist('f1c0f84e53aa6b98ec03'); + + gist.read(function(err, res, xhr) { + try { + expect(err).not.to.exist(); + expect(res).to.exist(); + expect(xhr).to.be.an.object(); + + done(); + } catch(e) { + try { + if (err && err.request.headers['x-ratelimit-remaining'] === '0') { + done(); - gist.read(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.be.an('object'); + return; + } + } catch(e2) { + done(e); + } - done(); + done(e); + } + }); }); }); -}); -describe('Github constructor (failing case)', function() { - before(function() { - github = new Github({ - username: testUser.USERNAME, - password: 'fake124', - auth: 'basic' + describe('with bad authentication', function() { + before(function() { + github = new Github({ + username: testUser.USERNAME, + password: 'fake124', + auth: 'basic' + }); + + user = github.getUser(); }); - user = github.getUser(); - }); + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); + }); - it('should fail authentication and return err', function(done) { - user.notifications(function(err) { - err.error.should.equal(401, 'Return 401 status for bad auth'); - JSON.parse(err.request.responseText).message.should.equal('Bad credentials'); - done(); + it('should fail authentication and return err', function(done) { + user.notifications(assertFailure(done, function(err) { + expect(err.error).to.be.equal(401, 'Return 401 status for bad auth'); + expect(err.request.data.message).to.equal('Bad credentials'); + + done(); + })); }); }); -}); \ No newline at end of file +}); diff --git a/test/test.gist.js b/test/test.gist.js index a20f6724..2f8bc8a4 100644 --- a/test/test.gist.js +++ b/test/test.gist.js @@ -1,11 +1,14 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github; + +var expect = require('must'); +var testUser = require('./fixtures/user.json'); +var testGist = require('./fixtures/gist.json'); +var assertSuccessful = require('./helpers').assertSuccessful; describe('Github.Gist', function() { - var gist; + var gist, gistId, github; before(function() { github = new Github({ @@ -13,92 +16,68 @@ describe('Github.Gist', function() { password: testUser.PASSWORD, auth: 'basic' }); - - gist = github.getGist('f1c0f84e53aa6b98ec03'); }); - it('should read gist', function(done) { - gist.read(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.have.property('description', 'This is a test gist'); - res.files['README.md'].should.have.property('content', 'Hello World'); - - done(); + describe('reading', function() { + before(function() { + gist = github.getGist('f1c0f84e53aa6b98ec03'); }); - }); - - it('should star', function(done) { - gist.star(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - gist.isStarred(function(err) { - should.not.exist(err); + it('should read a gist', function(done) { + gist.read(assertSuccessful(done, function(err, gist) { + expect(gist).to.have.own('description', testGist.description); + expect(gist.files).to.have.keys(Object.keys(testGist.files)); + expect(gist.files['README.md']).to.have.own('content', testGist.files['README.md'].content); done(); - }); + })); }); }); -}); -describe('Creating new Github.Gist', function() { - var gist; + describe('creating/modifiying', function() { + before(function() { + gist = github.getGist(); + }); - before(function() { - gist = github.getGist(); - }); + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); + }); - it('should create gist', function(done) { - var gistData = { - description: 'This is a test gist', - public: true, - files: { - 'README.md': { - content: 'Hello World' - } - } - }; + it('should create gist', function(done) { + gist.create(testGist, assertSuccessful(done, function(err, gist) { + expect(gist).to.have.own('id'); + expect(gist).to.have.own('public', testGist.public); + expect(gist).to.have.own('description', testGist.description); + gistId = gist.id; - gist.create(gistData, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.have.property('description', gistData.description); - res.should.have.property('public', gistData.public); - res.should.have.property('id').to.be.a('string'); + done(); + })); + }); - done(); + it('should star a gist', function(done) { + gist = github.getGist(gistId); + gist.star(assertSuccessful(done, function() { + gist.isStarred(assertSuccessful(done, function(err, result) { + expect(result).to.be(true); + done(); + })); + })); }); }); -}); - -describe('deleting a Github.Gist', function() { - var gist; - - before(function(done) { - var gistData = { - description: 'This is a test gist', - public: true, - files: { - 'README.md': { - content: 'Hello World' - } - } - }; - github.getGist().create(gistData, function(err, res) { - gist = github.getGist(res.id); - - done(); + describe('deleting', function() { + before(function() { + gist = github.getGist(gistId); }); - }); - it('should delete gist', function(done) { - gist.delete(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); + }); - done(); + it('should delete gist', function(done) { + gist.delete(assertSuccessful(done)); }); }); -}); \ No newline at end of file +}); diff --git a/test/test.issue.js b/test/test.issue.js index a4c6c1a9..1b8e8058 100644 --- a/test/test.issue.js +++ b/test/test.issue.js @@ -1,11 +1,13 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github, issues; + +var expect = require('must'); +var testUser = require('./fixtures/user.json'); +var assertSuccessful = require('./helpers').assertSuccessful; describe('Github.Issue', function() { - var issue; + var github, remoteIssues, remoteIssue; before(function() { github = new Github({ @@ -14,65 +16,67 @@ describe('Github.Issue', function() { auth: 'basic' }); - issues = github.getIssues(testUser.USERNAME, 'TestRepo'); + remoteIssues = github.getIssues(testUser.USERNAME, 'TestRepo'); }); - it('should create issue', function(done) { - issues.create({ - title: 'New issue', - body: 'New issue body' - }, function(err, issue, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - should.exist(issue.url); - issue.title.should.equal('New issue'); - issue.body.should.equal('New issue body'); - - done(); - }); - }); + describe('reading', function() { + it('should list issues', function(done) { + remoteIssues.list({}, assertSuccessful(done, function(err, issues) { + expect(issues).to.be.an.array(); + remoteIssue = issues[0]; - it('should list issues', function(done) { - issues.list({}, function(err, issues, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - issues.should.have.length.above(0); + done(); + })); + }); - issue = issues[0]; + it('should get issue', function(done) { + remoteIssues.get(remoteIssue.number, assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('number', remoteIssue.number); - done(); + done(); + })); }); }); - it('should post issue comment', function(done) { - issues.comment(issue, 'Comment test', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.body.should.equal('Comment test'); + describe('creating/modifiying', function() { + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); + }); + + it('should create issue', function(done) { + var issue = { + title: 'New issue', + body: 'New issue body' + }; + + remoteIssues.create(issue, assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('url'); + expect(issue).to.have.own('title', issue.title); + expect(issue).to.have.own('body', issue.body); - done(); + done(); + })); }); - }); - it('should edit issues title', function(done) { - issues.edit(issue.number, { - title: 'Edited title' - }, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.title.should.equal('Edited title'); + it('should post issue comment', function(done) { + remoteIssues.comment(remoteIssue, 'Comment test', assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('body', 'Comment test'); - done(); + done(); + })); }); - }); - it('should get issue', function(done) { - issues.get(issue.number, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.number.should.equal(issue.number); + it('should edit issues title', function(done) { + var newProps = { + title: 'Edited title' + }; + + remoteIssues.edit(remoteIssue.number, newProps, assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('title', newProps.title); - done(); + done(); + })); }); }); }); diff --git a/test/test.rate-limit.js b/test/test.rate-limit.js index ec4d0083..b3d85fb4 100644 --- a/test/test.rate-limit.js +++ b/test/test.rate-limit.js @@ -1,10 +1,14 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github, rateLimit; + +var expect = require('must'); +var testUser = require('./fixtures/user.json'); +var assertSuccessful = require('./helpers').assertSuccessful; describe('Github.RateLimit', function() { + var github, rateLimit; + before(function() { github = new Github({ username: testUser.USERNAME, @@ -16,17 +20,17 @@ describe('Github.RateLimit', function() { }); it('should get rate limit', function(done) { - rateLimit.getRateLimit(function(err, rateInfo, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - rateInfo.should.be.an('object'); - rateInfo.should.have.deep.property('rate.limit'); - rateInfo.rate.limit.should.be.a('number'); - rateInfo.should.have.deep.property('rate.remaining'); - rateInfo.rate.remaining.should.be.a('number'); - rateInfo.rate.remaining.should.be.at.most(rateInfo.rate.limit); + rateLimit.getRateLimit(assertSuccessful(done, function(err, rateInfo) { + var rate = rateInfo.rate; + + expect(rate).to.be.an.object(); + expect(rate).to.have.own('limit'); + expect(rate).to.have.own('remaining'); + expect(rate.limit).to.be.a.number(); + expect(rate.remaining).to.be.a.number(); + expect(rate.remaining).to.be.at.most(rateInfo.rate.limit); done(); - }); + })); }); }); diff --git a/test/test.repo.js b/test/test.repo.js index dc99f85d..e291c000 100644 --- a/test/test.repo.js +++ b/test/test.repo.js @@ -1,702 +1,551 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var RELEASE_TAG = 'foo'; -var RELEASE_NAME = 'My awesome release'; -var RELEASE_BODY = 'Foo bar bazzy baz'; -var STATUS_URL = 'https://api.github.com/repos/michael/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; -var github, repo, user, imageB64, imageBlob, sha, releaseId; - -if (typeof window === 'undefined') { // We're in NodeJS - var fs = require('fs'); - var path = require('path'); - - imageBlob = fs.readFileSync(path.join(__dirname, 'gh.png')); // This is a Buffer(). - imageB64 = imageBlob.toString('base64'); -} else { // We're in the browser - if (typeof window._phantom !== 'undefined') { - var xhr = new XMLHttpRequest(); - - xhr.responseType = 'blob'; - xhr.open('GET', 'base/test/gh.png'); - xhr.onload = function() { - var reader = new FileReader(); - - reader.onloadend = function() { - imageB64 = btoa(reader.result); - imageBlob = reader.result; - console.log(imageBlob); - }; - - reader.readAsBinaryString(xhr.response); - }; - - xhr.send(); - } else { - // jscs:disable - imageB64 = 'iVBORw0KGgoAAAANSUhEUgAAACsAAAAmCAAAAAB4qD3CAAABgElEQVQ4y9XUsUocURQGYN/pAyMWBhGtrEIMiFiooGuVIoYsSBAsRSQvYGFWC4uFhUBYsilXLERQsDA20YAguIbo5PQp3F3inVFTheSvZoavGO79z+mJP0/Pv2nPtlfLpfLq9tljNquO62S8mj1kmy/8nrHm/Xaz1930bt5n1+SzVmyrilItsod9ON0td1V59xR9hwV2HsMRsbfROLo4amzsRcQw5vO2CZPJEU5CM2cXYTCxg7CY2mwIVhK7AkNZYg9g4CqxVwNwkNg6zOTKMQP1xFZgKWeXoJLYdSjl7BysJ7YBIzk7Ap8TewLOE3oOTtIz6y/64bfQn55ZTIAPd2gNTOTurcbzp7z50v1y/Pq2Q7Wczca8vFjG6LvbMo92hiPL96xO+eYVPkVExMdONetFXZ+l+eP9cuV7RER8a9PZwrloTXv2tfv285ZOt4rnrTXlydxCu9sZmGrdN8eXC3ATERHXsHD5wC7ZL3HdsaX9R3bUzlb7YWvn/9ipf93+An8cHsx3W3WHAAAAAElFTkSuQmCC'; - imageBlob = new Blob(); - // jscs:enable - } -} +var expect = require('must'); +var testUser = require('./fixtures/user.json'); +var loadImage = require('./fixtures/imageBlob'); +var assertSuccessful = require('./helpers').assertSuccessful; +var assertFailure = require('./helpers').assertFailure; describe('Github.Repository', function() { - before(function() { + var github, remoteRepo, user, imageB64, imageBlob; + var testRepoName = Math.floor(Math.random() * 100000).toString(); + var v10_4sha = '20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; + var statusUrl = 'https://api.github.com/repos/michael/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; + + before(function(done) { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, auth: 'basic' }); - repo = github.getRepo('michael', 'github'); - }); - - it('should show repo', function(done) { - repo.show(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.full_name.should.equal('michael/github'); // jscs:ignore - + loadImage(function(b64, blob) { + imageB64 = b64; + imageBlob = blob; done(); }); }); - it('should get blob', function(done) { - repo.getSha('master', 'README.md', function(err, sha) { - repo.getBlob(sha, function(err, content, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - content.indexOf('# Github.js').should.be.above(-1); - - done(); - }); + describe('reading', function() { + before(function() { + remoteRepo = github.getRepo('michael', 'github'); }); - }); - - it('should show repo contents', function(done) { - repo.contents('master', '', function(err, contents, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - contents.should.be.instanceof(Array); - - var readme = contents.filter(function(content) { - return content.path === 'README.md'; - }); - readme.should.have.length(1); - readme[0].should.have.property('type', 'file'); + it('should show repo', function(done) { + remoteRepo.show(assertSuccessful(done, function(err, repo) { + expect(repo).to.have.own('full_name', 'michael/github'); - done(); + done(); + })); }); - }); - it('should get tree', function(done) { - repo.getTree('master', function(err, tree, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - tree.should.be.instanceof(Array); - tree.should.have.length.above(0); + it('should get blob', function(done) { + remoteRepo.getSha('master', 'README.md', assertSuccessful(done, function(err, sha) { + remoteRepo.getBlob(sha, assertSuccessful(done, function(err, content) { + expect(content).to.be.include('# Github.js'); - done(); + done(); + })); + })); }); - }); - it('should fork repo', function(done) { - repo.fork(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + it('should show repo contents', function(done) { + remoteRepo.contents('master', '', assertSuccessful(done, function(err, contents) { + expect(contents).to.be.an.array(); - // @TODO write better assertion. - done(); - }); - }); + var readme = contents.filter(function(content) { + return content.path === 'README.md'; + }); - it('should list forks of repo', function(done) { - repo.listForks(function(err, forks, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + expect(readme).to.have.length(1); + expect(readme[0]).to.have.own('type', 'file'); - // @TODO write better assertion. - done(); + done(); + })); }); - }); - it('should list commits with no options', function(done) { - repo.getCommits(null, function(err, commits, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - commits.should.be.instanceof(Array); - commits.should.have.length.above(0); - commits[0].should.have.property('commit'); - commits[0].should.have.property('author'); + it('should get tree', function(done) { + remoteRepo.getTree('master', assertSuccessful(done, function(err, tree) { + expect(tree).to.be.an.array(); + expect(tree.length).to.be.above(0); - done(); + done(); + })); }); - }); - it('should list commits with all options', function(done) { - var sinceDate = new Date(2015, 0, 1); - var untilDate = new Date(2016, 0, 20); - var options = { - sha: 'master', - path: 'test', - author: 'AurelioDeRosa', - since: sinceDate, - until: untilDate - }; - - repo.getCommits(options, function(err, commits, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - commits.should.be.instanceof(Array); - commits.should.have.length.above(0); - commits[0].should.have.property('commit'); - commits[0].should.have.deep.property('author.login', 'AurelioDeRosa'); - (new Date(commits[0].commit.author.date)).getTime().should.be.within(sinceDate.getTime(), untilDate.getTime()); + it('should fork repo', function(done) { + remoteRepo.fork(assertSuccessful(done)); + }); - done(); + it('should list forks of repo', function(done) { + remoteRepo.listForks(assertSuccessful(done, function(err, forks) { + expect(forks).to.be.an.array(); + expect(forks.length).to.be.above(0); + done(); + })); }); - }); - it('should show repo contributors', function(done) { - repo.contributors(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.be.instanceof(Array); - res.should.have.length.above(1); - should.exist(res[0].author); - should.exist(res[0].total); - should.exist(res[0].weeks); + it('should list commits with no options', function(done) { + remoteRepo.getCommits(null, assertSuccessful(done, function(err, commits) { + expect(commits).to.be.an.array(); + expect(commits.length).to.be.above(0); - done(); - }); - }); + expect(commits[0]).to.have.own('commit'); + expect(commits[0]).to.have.own('author'); + + done(); + })); + }); + + it('should list commits with all options', function(done) { + var sinceDate = new Date(2015, 0, 1); + var untilDate = new Date(2016, 0, 20); + var options = { + sha: 'master', + path: 'test', + author: 'AurelioDeRosa', + since: sinceDate, + until: untilDate + }; - // @TODO repo.branch, repo.pull + remoteRepo.getCommits(options, assertSuccessful(done, function(err, commits) { + expect(commits).to.be.an.array(); + expect(commits.length).to.be.above(0); - it('should list repo branches', function(done) { - repo.listBranches(function(err, branches, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + var commit = commits[0]; + var commitDate = new Date(commit.commit.author.date); - done(); + expect(commit).to.have.own('commit'); + expect(commit.author).to.have.own('login', 'AurelioDeRosa'); + expect(commitDate.getTime()).to.be.between(sinceDate.getTime(), untilDate.getTime()); + done(); + })); }); - }); - it('should read repo', function(done) { - repo.read('master', 'README.md', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.indexOf('# Github.js').should.be.above(-1); + it('should show repo contributors', function(done) { + remoteRepo.contributors(assertSuccessful(done, function(err, contributors) { + expect(contributors).to.be.an.array(); + expect(contributors.length).to.be.above(1); - done(); - }); - }); + var contributor = contributors[0]; - it('should get commit from repo', function(done) { - repo.getCommit('master', '20fcff9129005d14cc97b9d59b8a3d37f4fb633b', function(err, commit, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - commit.message.should.equal('v0.10.4'); - commit.author.date.should.equal('2015-03-20T17:01:42Z'); + expect(contributor).to.have.own('author'); + expect(contributor).to.have.own('total'); + expect(contributor).to.have.own('weeks'); - done(); + done(); + })); }); - }); - it('should get statuses for a SHA from a repo', function(done) { - repo.getStatuses('20fcff9129005d14cc97b9d59b8a3d37f4fb633b', function(err, statuses, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - statuses.length.should.equal(6); - statuses.every(function(status) { - return status.url === STATUS_URL; - }).should.equal(true); + it('should show repo collaborators', function(done) { + remoteRepo.collaborators(assertSuccessful(done, function(err, collaborators) { + expect(collaborators).to.be.an.array(); + expect(collaborators).to.have.length(1); - done(); - }); - }); + var collaborator = collaborators[0]; - it('should get a SHA from a repo', function(done) { - repo.getSha('master', '.gitignore', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + expect(collaborator).to.have.own('login', testUser.USERNAME); + expect(collaborator).to.have.own('id'); + expect(collaborator).to.have.own('permissions'); - done(); + done(); + })); }); - }); - - it('should get a repo by fullname', function(done) { - var repo2 = github.getRepo('michael/github'); - repo2.show(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.full_name.should.equal('michael/github'); // jscs:ignore + // @TODO repo.branch, repo.pull - done(); + it('should list repo branches', function(done) { + remoteRepo.listBranches(assertSuccessful(done)); }); - }); - it('should check if the repo is starred', function(done) { - repo.isStarred('michael', 'github', function(err) { - err.error.should.equal(404); - err.request.should.be.instanceof(XMLHttpRequest); + it('should read repo', function(done) { + remoteRepo.read('master', 'README.md', assertSuccessful(done, function(err, text) { + expect(text).to.contain('# Github.js'); - done(); + done(); + })); }); - }); -}); -var repoTest = Math.floor(Math.random() * 100000); + it('should get commit from repo', function(done) { + remoteRepo.getCommit('master', v10_4sha, assertSuccessful(done, function(err, commit) { + expect(commit.message).to.equal('v0.10.4'); + expect(commit.author.date).to.equal('2015-03-20T17:01:42Z'); -describe('Creating new Github.Repository', function() { - before(function() { - github = new Github({ - username: testUser.USERNAME, - password: testUser.PASSWORD, - auth: 'basic' + done(); + })); }); - user = github.getUser(); - repo = github.getRepo(testUser.USERNAME, repoTest); - }); + it('should get statuses for a SHA from a repo', function(done) { + remoteRepo.getStatuses(v10_4sha, assertSuccessful(done, function(err, statuses) { + expect(statuses).to.be.an.array(); + expect(statuses.length).to.equal(6); - it('should create repo', function(done) { - user.createRepo({ - name: repoTest - }, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.name.should.equal(repoTest.toString()); + var correctUrls = statuses.every(function(status) { + return status.url === statusUrl; + }); - done(); - }); - }); + expect(correctUrls).to.be(true); - it('should show repo collaborators', function(done) { - repo.collaborators(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.be.instanceof(Array); - res.should.have.length(1); - res[0].login.should.equal(testUser.USERNAME); - should.exist(res[0].id); - should.exist(res[0].permissions); + done(); + })); + }); - done(); + it('should get a SHA from a repo', function(done) { + remoteRepo.getSha('master', '.gitignore', assertSuccessful(done)); }); - }); - it('should test whether user is collaborator', function(done) { - repo.isCollaborator(testUser.USERNAME, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - xhr.status.should.equal(204); + it('should get a repo by fullname', function(done) { + var repoByName = github.getRepo('michael/github'); - done(); + repoByName.show(assertSuccessful(done, function(err, repo) { + expect(repo).to.have.own('full_name', 'michael/github'); + + done(); + })); }); - }); - it('should write to repo', function(done) { - repo.write('master', 'TEST.md', 'THIS IS A TEST', 'Creating test', function(err) { - should.not.exist(err); + it('should test whether user is collaborator', function(done) { + remoteRepo.isCollaborator(testUser.USERNAME, assertSuccessful(done)); + }); - repo.read('master', 'TEST.md', function(err, res) { - should.not.exist(err); - res.should.equal('THIS IS A TEST'); + it('should check if the repo is starred', function(done) { + remoteRepo.isStarred('michael', 'github', assertFailure(done, function(err) { + expect(err.error).to.be(404); done(); - }); + })); }); }); - it('should write to repo branch', function(done) { - repo.branch('master', 'dev', function(err) { - should.not.exist(err); - repo.write('dev', 'TEST.md', 'THIS IS AN UPDATED TEST', 'Updating test', function(err) { - should.not.exist(err); - repo.read('dev', 'TEST.md', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.equal('THIS IS AN UPDATED TEST'); + describe('creating/modifiying', function() { + var fileName = 'test.md'; - done(); - }); - }); - }); - }); + var initialText = 'This is a test.'; + var initialMessage = 'Test file create.'; - it('should compare two branches', function(done) { - repo.branch('master', 'compare', function() { - repo.write('compare', 'TEST.md', 'THIS IS AN UPDATED TEST', 'Updating test', function() { - repo.compare('master', 'compare', function(err, diff, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - diff.should.have.property('total_commits', 1); - diff.should.have.deep.property('files[0].filename', 'TEST.md'); + var updatedText = 'This file has been updated.'; + var updatedMessage = 'Test file update.'; - done(); - }); - }); - }); - }); + var fileToDelete = 'tmp.md'; + var deleteMessage = 'Removing file'; - it('should submit a pull request', function(done) { - var baseBranch = 'master'; - var headBranch = 'pull-request'; - var pullRequestTitle = 'Test pull request'; - var pullRequestBody = 'This is a test pull request'; - - repo.branch(baseBranch, headBranch, function() { - repo.write(headBranch, 'TEST.md', 'THIS IS AN UPDATED TEST', 'Updating test', function() { - repo.createPullRequest( - { - title: pullRequestTitle, - body: pullRequestBody, - base: baseBranch, - head: headBranch - }, - function(err, pullRequest, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - pullRequest.should.have.property('number').above(0); - pullRequest.should.have.property('title', pullRequestTitle); - pullRequest.should.have.property('body', pullRequestBody); + var unicodeFileName = '\u4E2D\u6587\u6D4B\u8BD5.md'; + var unicodeText = '\u00A1\u00D3i de m\u00ED, que verg\u00FCenza!'; + var unicodeMessage = 'Such na\u00EFvet\u00E9\u2026'; - done(); - } - ); - }); - }); - }); + var imageFileName = 'image.png'; - it('should get ref from repo', function(done) { - repo.getRef('heads/master', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + var releaseTag = 'foo'; + var releaseName = 'My awesome release'; + var releaseBody = 'Foo bar bazzy baz'; + var sha, releaseId; - // @TODO write better assertion - done(); + before(function() { + user = github.getUser(); + remoteRepo = github.getRepo(testUser.USERNAME, testRepoName); + }); + + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); }); - }); - it('should create ref on repo', function(done) { - repo.getRef('heads/master', function(err, sha) { - var refSpec = { - ref: 'refs/heads/new-test-branch', sha: sha + it('should create repo', function(done) { + var repoDef = { + name: testRepoName }; - repo.createRef(refSpec, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + user.createRepo(repoDef, assertSuccessful(done, function(err, repo) { + expect(repo).to.have.own('name', testRepoName); - // @TODO write better assertion done(); - }); + })); }); - }); - it('should delete ref on repo', function(done) { - repo.deleteRef('heads/new-test-branch', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + it('should write to repo', function(done) { + remoteRepo.write('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { + remoteRepo.read('master', fileName, assertSuccessful(done, function(err, fileText) { + expect(fileText).to.be(initialText); - // @TODO write better assertion - done(); + done(); + })); + })); }); - }); - it('should list tags on repo', function(done) { - repo.listTags(function(err, tags, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + it('should write to repo branch', function(done) { + remoteRepo.branch('master', 'dev', assertSuccessful(done, function() { + remoteRepo.write('dev', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.read('dev', fileName, assertSuccessful(done, function(err, fileText) { + expect(fileText).to.be(updatedText); - // @TODO write better assertion - done(); + done(); + })); + })); + })); }); - }); - it('should list pulls on repo', function(done) { - var repo = github.getRepo('michael', 'github'); - var options = { - state: 'all', - sort: 'updated', - direction: 'desc', - page: 1, - per_page: 10 - }; - - repo.listPulls(options, function(err, pullRequests, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - pullRequests.should.be.instanceof(Array); - pullRequests.should.have.length(10); - should.exist(pullRequests[0].title); - should.exist(pullRequests[0].body); - should.exist(pullRequests[0].url); + it('should compare two branches', function(done) { + remoteRepo.branch('master', 'compare', assertSuccessful(done, function() { + remoteRepo.write('compare', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.compare('master', 'compare', assertSuccessful(done, function(err, diff) { + expect(diff).to.have.own('total_commits', 1); + expect(diff.files[0]).to.have.own('filename', fileName); - done(); - }); - }); + done(); + })); + })); + })); + }); + + it('should submit a pull request', function(done) { + var baseBranch = 'master'; + var headBranch = 'pull-request'; + var pullRequestTitle = 'Test pull request'; + var pullRequestBody = 'This is a test pull request'; + var pr = { + title: pullRequestTitle, + body: pullRequestBody, + base: baseBranch, + head: headBranch + }; - it('should get pull requests on repo', function(done) { - var repo = github.getRepo('michael', 'github'); + remoteRepo.branch(baseBranch, headBranch, assertSuccessful(done, function() { + remoteRepo.write(headBranch, fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.createPullRequest(pr, assertSuccessful(done, function(err, pullRequest) { + expect(pullRequest).to.have.own('number'); + expect(pullRequest.number).to.be.above(0); + expect(pullRequest).to.have.own('title', pullRequestTitle); + expect(pullRequest).to.have.own('body', pullRequestBody); - repo.getPull(153, function(err, pullRequest, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + done(); + })); + })); + })); + }); - // @TODO write better assertion - done(); + it('should get ref from repo', function(done) { + remoteRepo.getRef('heads/master', assertSuccessful(done)); }); - }); - it('should delete a file on the repo', function(done) { - repo.write('master', 'REMOVE-TEST.md', 'THIS IS A TEST', 'Remove test', function(err) { - should.not.exist(err); + it('should create ref on repo', function(done) { + remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, sha) { + var refSpec = { + ref: 'refs/heads/new-test-branch', sha: sha + }; - repo.remove('master', 'REMOVE-TEST.md', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + remoteRepo.createRef(refSpec, assertSuccessful(done)); + })); + }); - done(); - }); + it('should delete ref on repo', function(done) { + remoteRepo.deleteRef('heads/new-test-branch', assertSuccessful(done)); }); - }); - it('should use repo.delete as an alias for repo.remove', function(done) { - repo.write('master', 'REMOVE-TEST.md', 'THIS IS A TEST', 'Remove test', function(err) { - should.not.exist(err); + it('should list tags on repo', function(done) { + remoteRepo.listTags(assertSuccessful(done)); + }); + + it('should list pulls on repo', function(done) { + var options = { + state: 'all', + sort: 'updated', + direction: 'desc', + page: 1, + per_page: 10 + }; - repo.delete('master', 'REMOVE-TEST.md', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + remoteRepo.listPulls(options, assertSuccessful(done, function(err, pullRequests) { + expect(pullRequests).to.be.an.array(); + expect(pullRequests).to.have.length(1); done(); - }); + })); }); - }); - it('should write author and committer to repo', function(done) { - var options = { - author: { - name: 'Author Name', email: 'author@example.com' - }, - committer: { - name: 'Committer Name', email: 'committer@example.com' - } - }; - - repo.write('dev', 'TEST.md', 'THIS IS A TEST BY AUTHOR AND COMMITTER', 'Updating', options, function(err, res) { - should.not.exist(err); - repo.getCommit('dev', res.commit.sha, function(err, commit, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - commit.author.name.should.equal('Author Name'); - commit.author.email.should.equal('author@example.com'); - commit.committer.name.should.equal('Committer Name'); - commit.committer.email.should.equal('committer@example.com'); + it('should get pull requests on repo', function(done) { + var repo = github.getRepo('michael', 'github'); + + repo.getPull(153, assertSuccessful(done, function(err, pr) { + expect(pr).to.have.own('title'); + expect(pr).to.have.own('body'); + expect(pr).to.have.own('url'); done(); - }); + })); }); - }); - it('should be able to write CJK unicode to repo', function(done) { - repo.write('master', '中文测试.md', 'THIS IS A TEST', 'Creating test', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - // @TODO write better assertion - done(); + it('should delete a file on the repo', function(done) { + remoteRepo.write('master', fileToDelete, initialText, deleteMessage, assertSuccessful(done, function() { + remoteRepo.remove('master', fileToDelete, assertSuccessful(done)); + })); }); - }); - - it('should be able to write unicode to repo', function(done) { - repo.write('master', 'TEST_unicode.md', '\u2014', 'Long dash unicode', function(err) { - should.not.exist(err); - - repo.read('master', 'TEST_unicode.md', function(err, obj, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - obj.should.equal('\u2014'); - done(); - }); + it('should use repo.delete as an alias for repo.remove', function(done) { + remoteRepo.write('master', fileToDelete, initialText, deleteMessage, assertSuccessful(done, function() { + remoteRepo.delete('master', fileToDelete, assertSuccessful(done)); + })); }); - }); - it('should pass a regression test for _request (#14)', function(done) { - repo.getRef('heads/master', function(err, sha) { - var refSpec = { - ref: 'refs/heads/testing-14', sha: sha + it('should write author and committer to repo', function(done) { + var options = { + author: { + name: 'Author Name', email: 'author@example.com' + }, + committer: { + name: 'Committer Name', email: 'committer@example.com' + } }; - repo.createRef(refSpec, function(err) { - should.not.exist(err); + remoteRepo.write('dev', fileName, initialText, initialMessage, options, assertSuccessful(done, function(e, r) { + remoteRepo.getCommit('dev', r.commit.sha, assertSuccessful(done, function(err, commit) { + expect(commit.author.name).to.be('Author Name'); + expect(commit.author.email).to.be('author@example.com'); + expect(commit.committer.name).to.be('Committer Name'); + expect(commit.committer.email).to.be('committer@example.com'); + + done(); + })); + })); + }); - // Triggers GET: - // https://api.github.com/repos/michael/cmake_cdt7_stalled/git/refs/heads/prose-integration - repo.getRef('heads/master', function(err) { - should.not.exist(err); + it('should be able to write all the unicode', function(done) { + remoteRepo.write('master', unicodeFileName, unicodeText, unicodeMessage, assertSuccessful(done, + function(err, commit) { + expect(commit.content.name).to.be(unicodeFileName); + expect(commit.commit.message).to.be(unicodeMessage); - // Triggers DELETE: - // https://api.github.com/repos/michael/cmake_cdt7_stalled/git/refs/heads/prose-integration - repo.deleteRef('heads/testing-14', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - xhr.status.should.equal(204); + remoteRepo.read('master', unicodeFileName, assertSuccessful(done, function(err, fileText) { + expect(fileText).to.be(unicodeText); done(); - }); - }); - }); + })); + })); }); - }); - - it('should be able to write an image to the repo', function(done) { - repo.write('master', 'TEST_image.png', imageB64, 'Image test', { - encode: false - }, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - sha = res.commit.sha; - done(); - }); - }); + it('should pass a regression test for _request (#14)', function(done) { + remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, sha) { + var refSpec = { + ref: 'refs/heads/testing-14', sha: sha + }; - it('should be able to write a blob to the repo', function(done) { - repo.postBlob('String test', function(err, res, xhr) { // Test strings - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + remoteRepo.createRef(refSpec, assertSuccessful(done, function() { + // Triggers GET: + // https://api.github.com/repos/michael/cmake_cdt7_stalled/git/refs/heads/prose-integration + remoteRepo.getRef('heads/master', assertSuccessful(done, function() { + // Triggers DELETE: + // https://api.github.com/repos/michael/cmake_cdt7_stalled/git/refs/heads/prose-integration + remoteRepo.deleteRef('heads/testing-14', assertSuccessful(done, function(err, res, xhr) { + expect(xhr.status).to.be(204); + + done(); + })); + })); + })); + })); + }); + + it('should be able to write an image to the repo', function(done) { + var opts = { + encode: false + }; - repo.postBlob(imageBlob, function(err, res, xhr) { // Test non-strings - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + remoteRepo.write('master', imageFileName, imageB64, initialMessage, opts, assertSuccessful(done, + function(err, commit) { + sha = commit.sha; - done(); - }); + done(); + })); }); - }); - it('should star the repo', function(done) { - repo.star(testUser.USERNAME, repoTest, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + it('should be able to write a string blob to the repo', function(done) { + remoteRepo.postBlob('String test', assertSuccessful(done)); + }); - repo.isStarred(testUser.USERNAME, repoTest, function(err) { - should.not.exist(err); + it('should be able to write a file blob to the repo', function(done) { + remoteRepo.postBlob(imageBlob, assertSuccessful(done)); + }); - done(); - }); + it('should star the repo', function(done) { + remoteRepo.star(testUser.USERNAME, testRepoName, assertSuccessful(done, function() { + remoteRepo.isStarred(testUser.USERNAME, testRepoName, assertSuccessful(done)); + })); }); - }); - it('should unstar the repo', function(done) { - repo.unstar(testUser.USERNAME, repoTest, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + it('should unstar the repo', function(done) { + remoteRepo.unstar(testUser.USERNAME, testRepoName, assertSuccessful(done, function() { + remoteRepo.isStarred(testUser.USERNAME, testRepoName, assertFailure(done, function(err) { + expect(err.error).to.be(404); - repo.isStarred(testUser.USERNAME, repoTest, function(err) { - err.error.should.equal(404); + done(); + })); + })); + }); + + it('should fail on broken commit', function(done) { + remoteRepo.commit('broken-parent-hash', 'broken-tree-hash', initialMessage, assertFailure(done, function(err) { + expect(err.error).to.be(422); done(); - }); + })); }); - }); - - it('should create a release', function(done) { - var options = { - tag_name: RELEASE_TAG, - target_commitish: sha - }; - repo.createRelease(options, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); + it('should create a release', function(done) { + var options = { + tag_name: releaseTag, + target_commitish: sha + }; - releaseId = res.id; - done(); + remoteRepo.createRelease(options, assertSuccessful(done, function(err, res) { + releaseId = res.id; + done(); + })); }); - }); - it('should edit a release', function(done) { - var options = { - name: RELEASE_NAME, - body: RELEASE_BODY - }; + it('should edit a release', function(done) { + var options = { + name: releaseName, + body: releaseBody + }; - repo.editRelease(releaseId, options, function(err, res, xhr) { - should.not.exist(err); - res.name.should.equal(RELEASE_NAME); - res.body.should.equal(RELEASE_BODY); - xhr.should.be.instanceof(XMLHttpRequest); + remoteRepo.editRelease(releaseId, options, assertSuccessful(done, function(err, release) { + expect(release).to.have.own('name', releaseName); + expect(release).to.have.own('body', releaseBody); - done(); + done(); + })); }); - }); - it('should read a release', function(done) { - repo.getRelease(releaseId, function(err, res, xhr) { - should.not.exist(err); - res.name.should.equal(RELEASE_NAME); - xhr.should.be.instanceof(XMLHttpRequest); - done(); - }); - }); + it('should read a release', function(done) { + remoteRepo.getRelease(releaseId, assertSuccessful(done, function(err, release) { + expect(release).to.have.own('name', releaseName); - it('should delete a release', function(done) { - repo.deleteRelease(releaseId, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - done(); + done(); + })); }); - }); -}); -describe('deleting a Github.Repository', function() { - before(function() { - github = new Github({ - username: testUser.USERNAME, - password: testUser.PASSWORD, - auth: 'basic' + it('should delete a release', function(done) { + remoteRepo.deleteRelease(releaseId, assertSuccessful(done)); }); - repo = github.getRepo(testUser.USERNAME, repoTest); }); - it('should delete the repo', function(done) { - repo.deleteRepo(function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.should.be.true; // jshint ignore:line - - done(); + describe('deleting', function() { + before(function() { + remoteRepo = github.getRepo(testUser.USERNAME, testRepoName); }); - }); -}); -describe('Repo returns commit errors correctly', function() { - before(function() { - github = new Github({ - username: testUser.USERNAME, - password: testUser.PASSWORD, - auth: 'basic' + // 200ms between tests so that Github has a chance to settle + beforeEach(function(done) { + setTimeout(done, 200); }); - repo = github.getRepo(testUser.USERNAME, testUser.REPO); - }); - it('should fail on broken commit', function(done) { - repo.commit('broken-parent-hash', 'broken-tree-hash', 'commit message', function(err) { - should.exist(err); - should.exist(err.request); - err.request.should.be.instanceof(XMLHttpRequest); - err.error.should.equal(422); + it('should delete the repo', function(done) { + remoteRepo.deleteRepo(assertSuccessful(done, function(err, result) { + expect(result).to.be(true); - done(); + done(); + })); }); }); }); diff --git a/test/test.search.js b/test/test.search.js index f6bb51fa..bb416851 100644 --- a/test/test.search.js +++ b/test/test.search.js @@ -1,10 +1,13 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github; + +var testUser = require('./fixtures/user.json'); +var assertSuccessful = require('./helpers').assertSuccessful; describe('Github.Search', function() { + var github; + before(function() { github = new Github({ username: testUser.USERNAME, @@ -13,51 +16,31 @@ describe('Github.Search', function() { }); }); - it('should search.repositories', function(done) { + it('should search repositories', function(done) { var search = github.getSearch('tetris+language:assembly&sort=stars&order=desc'); var options = null; - search.repositories(options, function (err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + search.repositories(options, assertSuccessful(done)); }); - it('should search.code', function(done) { + it('should search code', function(done) { var search = github.getSearch('addClass+in:file+language:js+repo:jquery/jquery'); var options = null; - search.code(options, function (err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + search.code(options, assertSuccessful(done)); }); - it('should search.issues', function(done) { + it('should search issues', function(done) { var search = github.getSearch('windows+label:bug+language:python+state:open&sort=created&order=asc'); var options = null; - search.issues(options, function (err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + search.issues(options, assertSuccessful(done)); }); - it('should search.users', function(done) { + it('should search users', function(done) { var search = github.getSearch('tom+repos:%3E42+followers:%3E1000'); var options = null; - search.users(options, function (err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + search.users(options, assertSuccessful(done)); }); }); diff --git a/test/test.user.js b/test/test.user.js index 9ccdb0ff..a00e2784 100644 --- a/test/test.user.js +++ b/test/test.user.js @@ -1,10 +1,21 @@ 'use strict'; var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github, user; + +var expect = require('must'); +var testUser = require('./fixtures/user.json'); +var assertSuccessful = require('./helpers').assertSuccessful; + +function assertArray(done) { + return assertSuccessful(done, function(err, result) { + expect(result).to.be.an.array(); + done(); + }); +} describe('Github.User', function() { + var github, user; + before(function() { github = new Github({ username: testUser.USERNAME, @@ -14,17 +25,11 @@ describe('Github.User', function() { user = github.getUser(); }); - it('should get user.repos', function(done) { - user.repos(function(err, repos, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - repos.should.be.instanceof(Array); - - done(); - }); + it('should get user repos', function(done) { + user.repos(assertArray(done)); }); - it('should get user.repos with options', function(done) { + it('should get user repos with options', function(done) { var options = { type: 'owner', sort: 'updated', @@ -32,43 +37,22 @@ describe('Github.User', function() { page: 10 }; - user.repos(options, function(err, repos, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - repos.should.be.instanceof(Array); - - done(); - }); + user.repos(options, assertArray(done)); }); - it('should get user.orgs', function(done) { - user.orgs(function(err, orgs, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + it('should get user orgs', function(done) { + user.orgs(assertArray(done)); }); - it('should get user.gists', function(done) { - user.gists(function(err, gists, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + it('should get user gists', function(done) { + user.gists(assertArray(done)); }); - it('should get user.notifications', function(done) { - user.notifications(function(err, notifications, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + it('should get user notifications', function(done) { + user.notifications(assertArray(done)); }); - it('should get user.notifications with options', function(done) { + it('should get user notifications with options', function(done) { var options = { all: true, participating: true, @@ -76,31 +60,15 @@ describe('Github.User', function() { before: '2015-02-01T00:00:00Z' }; - user.notifications(options, function(err, notifications, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + user.notifications(options, assertArray(done)); }); it('should show user', function(done) { - user.show('ingalls', function(err, info, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + user.show('ingalls', assertSuccessful(done)); }); it('should show user\'s repos', function(done) { - user.userRepos('aendrew', function(err, repos, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - repos.should.be.instanceof(Array); - - done(); - }); + user.userRepos('aendrew', assertArray(done)); }); it('should show user\'s repos with options', function(done) { @@ -111,77 +79,26 @@ describe('Github.User', function() { page: 1 }; - user.userRepos('aendrew', options, function(err, repos, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - repos.should.be.instanceof(Array); - - done(); - }); + user.userRepos('aendrew', options, assertArray(done)); }); it('should show user\'s starred repos', function(done) { - user.userStarred(testUser.USERNAME, function(err, repos, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + user.userStarred(testUser.USERNAME, assertArray(done)); }); it('should show user\'s gists', function(done) { - user.userGists(testUser.USERNAME, function(err, gists, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + user.userGists(testUser.USERNAME, assertArray(done)); }); it('should show user\'s organisation repos', function(done) { - user.orgRepos('openaddresses', function(err, repos, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + user.orgRepos('openaddresses', assertArray(done)); }); it('should follow user', function(done) { - user.follow('ingalls', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); + user.follow('ingalls', assertSuccessful(done)); }); it('should unfollow user', function(done) { - user.unfollow('ingalls', function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - - done(); - }); - }); - - it('should create a repo', function(done) { - var repoTest = Math.floor(Math.random() * (100000 - 0)) + 0; - var github = new Github({ - username: testUser.USERNAME, - password: testUser.PASSWORD, - auth: 'basic' - }); - var user = github.getUser(); - - user.createRepo({ - name: repoTest - }, function (err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.name.should.equal(repoTest.toString()); - - done(); - }); + user.unfollow('ingalls', assertSuccessful(done)); }); }); From 94023de61cad9cb5a2c07fb08465b5bba8b60ca8 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 22 Apr 2016 23:46:30 -0500 Subject: [PATCH 005/137] Remove dist files from git and deprecate bower support. --- bower.json | 33 - dist/github.bundle.min.js | 3 - dist/github.bundle.min.js.map | 1 - dist/github.js | 1136 --------------------------------- dist/github.js.map | 1 - dist/github.min.js | 2 - dist/github.min.js.map | 1 - 7 files changed, 1177 deletions(-) delete mode 100644 bower.json delete mode 100644 dist/github.bundle.min.js delete mode 100644 dist/github.bundle.min.js.map delete mode 100644 dist/github.js delete mode 100644 dist/github.js.map delete mode 100644 dist/github.min.js delete mode 100644 dist/github.min.js.map diff --git a/bower.json b/bower.json deleted file mode 100644 index deff6a12..00000000 --- a/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name":"github-api", - "version": "0.11.2", - "main":"src/github.js", - "dependencies": { - "axios": "https://github.com/github-tools/axios.git", - "base-64": "^0.1.0", - "es6-promise": "^3.0.2", - "utf8": "^2.1.1" - }, - "homepage":"https://github.com/michael/github", - "authors":[ - "Ændrew Rininsland (http://www.aendrew.com)", - "Aurelio De Rosa (http://www.audero.it/)", - "Michael Aufreiter (http://substance.io)" - ], - "description":"Github.js provides a minimal higher-level wrapper around git's plumbing commands, exposing an API for manipulating GitHub repositories on the file level. It is being developed in the context of Prose, a content editor for GitHub.", - "moduleType":[ - "globals" - ], - "keywords":[ - "github", - "oauth" - ], - "license":"BSD-3-Clause-Clear", - "ignore":[ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/dist/github.bundle.min.js b/dist/github.bundle.min.js deleted file mode 100644 index b53ebbbd..00000000 --- a/dist/github.bundle.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Github=t()}}(function(){var t;return function e(t,n,r){function o(s,u){if(!n[s]){if(!t[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s=200&&o.status<300||!("status"in l)&&o.responseText?e:n)(o),l=null}},l.onerror=function(){n(new Error("Network Error")),l=null},r.isStandardBrowserEnv()){var g=t("./../helpers/cookies"),y=f.withCredentials||u(f.url)?g.read(f.xsrfCookieName):void 0;y&&(h[f.xsrfHeaderName]=y)}if("setRequestHeader"in l&&r.forEach(h,function(t,e){"undefined"==typeof c&&"content-type"===e.toLowerCase()?delete h[e]:l.setRequestHeader(e,t)}),f.withCredentials&&(l.withCredentials=!0),f.responseType)try{l.responseType=f.responseType}catch(v){if("json"!==l.responseType)throw v}r.isArrayBuffer(c)&&(c=new DataView(c)),l.send(c)}},{"./../helpers/btoa":8,"./../helpers/buildURL":9,"./../helpers/cookies":11,"./../helpers/isURLSameOrigin":13,"./../helpers/parseHeaders":14,"./../helpers/transformData":16,"./../utils":17}],3:[function(t,e,n){"use strict";function r(t){this.defaults=i.merge({},t),this.interceptors={request:new u,response:new u}}var o=t("./defaults"),i=t("./utils"),s=t("./core/dispatchRequest"),u=t("./core/InterceptorManager"),a=t("./helpers/isAbsoluteURL"),f=t("./helpers/combineURLs"),c=t("./helpers/bind"),h=t("./helpers/transformData");r.prototype.request=function(t){"string"==typeof t&&(t=i.merge({url:arguments[0]},arguments[1])),t=i.merge(o,this.defaults,{method:"get"},t),t.baseURL&&!a(t.url)&&(t.url=f(t.baseURL,t.url)),t.withCredentials=t.withCredentials||this.defaults.withCredentials,t.data=h(t.data,t.headers,t.transformRequest),t.headers=i.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]});var e=[s,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)n=n.then(e.shift(),e.shift());return n};var l=new r(o),p=e.exports=c(r.prototype.request,l);p.create=function(t){return new r(t)},p.defaults=l.defaults,p.all=function(t){return Promise.all(t)},p.spread=t("./helpers/spread"),p.interceptors=l.interceptors,i.forEach(["delete","get","head"],function(t){r.prototype[t]=function(e,n){return this.request(i.merge(n||{},{method:t,url:e}))},p[t]=c(r.prototype[t],l)}),i.forEach(["post","put","patch"],function(t){r.prototype[t]=function(e,n,r){return this.request(i.merge(r||{},{method:t,url:e,data:n}))},p[t]=c(r.prototype[t],l)})},{"./core/InterceptorManager":4,"./core/dispatchRequest":5,"./defaults":6,"./helpers/bind":7,"./helpers/combineURLs":10,"./helpers/isAbsoluteURL":12,"./helpers/spread":15,"./helpers/transformData":16,"./utils":17}],4:[function(t,e,n){"use strict";function r(){this.handlers=[]}var o=t("./../utils");r.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},r.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},r.prototype.forEach=function(t){o.forEach(this.handlers,function(e){null!==e&&t(e)})},e.exports=r},{"./../utils":17}],5:[function(t,e,n){(function(n){"use strict";e.exports=function(e){return new Promise(function(r,o){try{var i;"function"==typeof e.adapter?i=e.adapter:"undefined"!=typeof XMLHttpRequest?i=t("../adapters/xhr"):"undefined"!=typeof n&&(i=t("../adapters/http")),"function"==typeof i&&i(r,o,e)}catch(s){o(s)}})}}).call(this,t("_process"))},{"../adapters/http":2,"../adapters/xhr":2,_process:24}],6:[function(t,e,n){"use strict";var r=t("./utils"),o=/^\)\]\}',?\n/,i={"Content-Type":"application/x-www-form-urlencoded"};e.exports={transformRequest:[function(t,e){return r.isFormData(t)?t:r.isArrayBuffer(t)?t:r.isArrayBufferView(t)?t.buffer:!r.isObject(t)||r.isFile(t)||r.isBlob(t)?t:(r.isUndefined(e)||(r.forEach(e,function(t,n){"content-type"===n.toLowerCase()&&(e["Content-Type"]=t)}),r.isUndefined(e["Content-Type"])&&(e["Content-Type"]="application/json;charset=utf-8")),JSON.stringify(t))}],transformResponse:[function(t){if("string"==typeof t){t=t.replace(o,"");try{t=JSON.parse(t)}catch(e){}}return t}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(i),post:r.merge(i),put:r.merge(i)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"}},{"./utils":17}],7:[function(t,e,n){"use strict";e.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r>8-u%1*8)){if(n=o.charCodeAt(u+=.75),n>255)throw new r("INVALID_CHARACTER_ERR: DOM Exception 5");e=e<<8|n}return s}var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",e.exports=o},{}],9:[function(t,e,n){"use strict";function r(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=t("./../utils");e.exports=function(t,e,n){if(!e)return t;var i;if(n)i=n(e);else{var s=[];o.forEach(e,function(t,e){null!==t&&"undefined"!=typeof t&&(o.isArray(t)&&(e+="[]"),o.isArray(t)||(t=[t]),o.forEach(t,function(t){o.isDate(t)?t=t.toISOString():o.isObject(t)&&(t=JSON.stringify(t)),s.push(r(e)+"="+r(t))}))}),i=s.join("&")}return i&&(t+=(-1===t.indexOf("?")?"?":"&")+i),t}},{"./../utils":17}],10:[function(t,e,n){"use strict";e.exports=function(t,e){return t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,"")}},{}],11:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=r.isStandardBrowserEnv()?function(){return{write:function(t,e,n,o,i,s){var u=[];u.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},{"./../utils":17}],12:[function(t,e,n){"use strict";e.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},{}],13:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=r.isStandardBrowserEnv()?function(){function t(t){var e=t;return n&&(o.setAttribute("href",e),e=o.href),o.setAttribute("href",e),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var e,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return e=t(window.location.href),function(n){var o=r.isString(n)?t(n):n;return o.protocol===e.protocol&&o.host===e.host}}():function(){return function(){return!0}}()},{"./../utils":17}],14:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=function(t){var e,n,o,i={};return t?(r.forEach(t.split("\n"),function(t){o=t.indexOf(":"),e=r.trim(t.substr(0,o)).toLowerCase(),n=r.trim(t.substr(o+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}},{"./../utils":17}],15:[function(t,e,n){"use strict";e.exports=function(t){return function(e){return t.apply(null,e)}}},{}],16:[function(t,e,n){"use strict";var r=t("./../utils");e.exports=function(t,e,n){return r.forEach(n,function(n){t=n(t,e)}),t}},{"./../utils":17}],17:[function(t,e,n){"use strict";function r(t){return"[object Array]"===m.call(t)}function o(t){return"[object ArrayBuffer]"===m.call(t)}function i(t){return"[object FormData]"===m.call(t)}function s(t){var e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer}function u(t){return"string"==typeof t}function a(t){return"number"==typeof t}function f(t){return"undefined"==typeof t}function c(t){return null!==t&&"object"==typeof t}function h(t){return"[object Date]"===m.call(t)}function l(t){return"[object File]"===m.call(t)}function p(t){return"[object Blob]"===m.call(t)}function d(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}function g(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function y(t,e){if(null!==t&&"undefined"!=typeof t)if("object"==typeof t||r(t)||(t=[t]),r(t))for(var n=0,o=t.length;o>n;n++)e.call(null,t[n],n,t);else for(var i in t)t.hasOwnProperty(i)&&e.call(null,t[i],i,t)}function v(){function t(t,n){"object"==typeof e[n]&&"object"==typeof t?e[n]=v(e[n],t):e[n]=t}for(var e={},n=0,r=arguments.length;r>n;n++)y(arguments[n],t);return e}var m=Object.prototype.toString;e.exports={isArray:r,isArrayBuffer:o,isFormData:i,isArrayBufferView:s,isString:u,isNumber:a,isObject:c,isUndefined:f,isDate:h,isFile:l,isBlob:p,isStandardBrowserEnv:g,forEach:y,merge:v,trim:d}},{}],18:[function(e,n,r){(function(e){!function(o){var i="object"==typeof r&&r,s="object"==typeof n&&n&&n.exports==i&&n,u="object"==typeof e&&e;u.global!==u&&u.window!==u||(o=u);var a=function(t){this.message=t};a.prototype=new Error,a.prototype.name="InvalidCharacterError";var f=function(t){throw new a(t)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=/[\t\n\f\r ]/g,l=function(t){t=String(t).replace(h,"");var e=t.length;e%4==0&&(t=t.replace(/==?$/,""),e=t.length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&f("Invalid character: the string to be decoded is not correctly encoded.");for(var n,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},p=function(t){t=String(t),/[^\0-\xFF]/.test(t)&&f("The string to be encoded contains characters outside of the Latin1 range.");for(var e,n,r,o,i=t.length%3,s="",u=-1,a=t.length-i;++u>18&63)+c.charAt(o>>12&63)+c.charAt(o>>6&63)+c.charAt(63&o);return 2==i?(e=t.charCodeAt(u)<<8,n=t.charCodeAt(++u),o=e+n,s+=c.charAt(o>>10)+c.charAt(o>>4&63)+c.charAt(o<<2&63)+"="):1==i&&(o=t.charCodeAt(u),s+=c.charAt(o>>2)+c.charAt(o<<4&63)+"=="),s},d={encode:p,decode:l,version:"0.1.0"};if("function"==typeof t&&"object"==typeof t.amd&&t.amd)t(function(){return d});else if(i&&!i.nodeType)if(s)s.exports=d;else for(var g in d)d.hasOwnProperty(g)&&(i[g]=d[g]);else o.base64=d}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(t,e,n){"use strict";function r(){var t,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=e.length;for(t=0;n>t;t++)a[t]=e[t];for(t=0;n>t;++t)f[e.charCodeAt(t)]=t;f["-".charCodeAt(0)]=62,f["_".charCodeAt(0)]=63}function o(t){var e,n,r,o,i,s,u=t.length;if(u%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===t[u-2]?2:"="===t[u-1]?1:0,s=new c(3*u/4-i),r=i>0?u-4:u;var a=0;for(e=0,n=0;r>e;e+=4,n+=3)o=f[t.charCodeAt(e)]<<18|f[t.charCodeAt(e+1)]<<12|f[t.charCodeAt(e+2)]<<6|f[t.charCodeAt(e+3)],s[a++]=(16711680&o)>>16,s[a++]=(65280&o)>>8,s[a++]=255&o;return 2===i?(o=f[t.charCodeAt(e)]<<2|f[t.charCodeAt(e+1)]>>4,s[a++]=255&o):1===i&&(o=f[t.charCodeAt(e)]<<10|f[t.charCodeAt(e+1)]<<4|f[t.charCodeAt(e+2)]>>2,s[a++]=o>>8&255,s[a++]=255&o),s}function i(t){return a[t>>18&63]+a[t>>12&63]+a[t>>6&63]+a[63&t]}function s(t,e,n){for(var r,o=[],s=e;n>s;s+=3)r=(t[s]<<16)+(t[s+1]<<8)+t[s+2],o.push(i(r));return o.join("")}function u(t){for(var e,n=t.length,r=n%3,o="",i=[],u=16383,f=0,c=n-r;c>f;f+=u)i.push(s(t,f,f+u>c?c:f+u));return 1===r?(e=t[n-1],o+=a[e>>2],o+=a[e<<4&63],o+="=="):2===r&&(e=(t[n-2]<<8)+t[n-1],o+=a[e>>10],o+=a[e>>4&63],o+=a[e<<2&63],o+="="),i.push(o),i.join("")}n.toByteArray=o,n.fromByteArray=u;var a=[],f=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array;r()},{}],20:[function(t,e,n){(function(e){"use strict";function r(){try{var t=new Uint8Array(1);return t.foo=function(){return 42},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function o(){return i.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(t){return this instanceof i?(i.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof t?s(this,t):"string"==typeof t?u(this,t,arguments.length>1?arguments[1]:"utf8"):a(this,t)):arguments.length>1?new i(t,arguments[1]):new i(t)}function s(t,e){if(t=g(t,0>e?0:0|y(e)),!i.TYPED_ARRAY_SUPPORT)for(var n=0;e>n;n++)t[n]=0;return t}function u(t,e,n){"string"==typeof n&&""!==n||(n="utf8");var r=0|m(e,n);return t=g(t,r),t.write(e,n),t}function a(t,e){if(i.isBuffer(e))return f(t,e);if($(e))return c(t,e);if(null==e)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(e.buffer instanceof ArrayBuffer)return h(t,e);if(e instanceof ArrayBuffer)return l(t,e)}return e.length?p(t,e):d(t,e)}function f(t,e){var n=0|y(e.length);return t=g(t,n),e.copy(t,0,0,n),t}function c(t,e){var n=0|y(e.length);t=g(t,n);for(var r=0;n>r;r+=1)t[r]=255&e[r];return t}function h(t,e){var n=0|y(e.length);t=g(t,n);for(var r=0;n>r;r+=1)t[r]=255&e[r];return t}function l(t,e){return e.byteLength,i.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=i.prototype):t=h(t,new Uint8Array(e)),t}function p(t,e){var n=0|y(e.length);t=g(t,n);for(var r=0;n>r;r+=1)t[r]=255&e[r];return t}function d(t,e){var n,r=0;"Buffer"===e.type&&$(e.data)&&(n=e.data,r=0|y(n.length)),t=g(t,r);for(var o=0;r>o;o+=1)t[o]=255&n[o];return t}function g(t,e){i.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=i.prototype):t.length=e;var n=0!==e&&e<=i.poolSize>>>1;return n&&(t.parent=Z),t}function y(t){if(t>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function v(t,e){if(!(this instanceof v))return new v(t,e);var n=new i(t,e);return delete n.parent,n}function m(t,e){"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"binary":case"raw":case"raws":return n;case"utf8":case"utf-8":return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return X(t).length;default:if(r)return H(t).length;e=(""+e).toLowerCase(),r=!0}}function w(t,e,n){var r=!1;if(e=0|e,n=void 0===n||n===1/0?this.length:0|n,t||(t="utf8"),0>e&&(e=0),n>this.length&&(n=this.length),e>=n)return"";for(;;)switch(t){case"hex":return I(this,e,n);case"utf8":case"utf-8":return C(this,e,n);case"ascii":return P(this,e,n);case"binary":return x(this,e,n);case"base64":return S(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function b(t,e,n,r){n=Number(n)||0;var o=t.length-n;r?(r=Number(r),r>o&&(r=o)):r=o;var i=e.length;if(i%2!==0)throw new Error("Invalid hex string");r>i/2&&(r=i/2);for(var s=0;r>s;s++){var u=parseInt(e.substr(2*s,2),16);if(isNaN(u))throw new Error("Invalid hex string");t[n+s]=u}return s}function E(t,e,n,r){return V(H(e,t.length-n),t,n,r)}function A(t,e,n,r){return V(F(e),t,n,r)}function T(t,e,n,r){return A(t,e,n,r)}function R(t,e,n,r){return V(X(e),t,n,r)}function _(t,e,n,r){return V(z(e,t.length-n),t,n,r)}function S(t,e,n){return 0===e&&n===t.length?J.fromByteArray(t):J.fromByteArray(t.slice(e,n))}function C(t,e,n){n=Math.min(t.length,n);for(var r=[],o=e;n>o;){var i=t[o],s=null,u=i>239?4:i>223?3:i>191?2:1;if(n>=o+u){var a,f,c,h;switch(u){case 1:128>i&&(s=i);break;case 2:a=t[o+1],128===(192&a)&&(h=(31&i)<<6|63&a,h>127&&(s=h));break;case 3:a=t[o+1],f=t[o+2],128===(192&a)&&128===(192&f)&&(h=(15&i)<<12|(63&a)<<6|63&f,h>2047&&(55296>h||h>57343)&&(s=h));break;case 4:a=t[o+1],f=t[o+2],c=t[o+3],128===(192&a)&&128===(192&f)&&128===(192&c)&&(h=(15&i)<<18|(63&a)<<12|(63&f)<<6|63&c,h>65535&&1114112>h&&(s=h))}}null===s?(s=65533,u=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),o+=u}return U(r)}function U(t){var e=t.length;if(W>=e)return String.fromCharCode.apply(String,t);for(var n="",r=0;e>r;)n+=String.fromCharCode.apply(String,t.slice(r,r+=W));return n}function P(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;n>o;o++)r+=String.fromCharCode(127&t[o]);return r}function x(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;n>o;o++)r+=String.fromCharCode(t[o]);return r}function I(t,e,n){var r=t.length;(!e||0>e)&&(e=0),(!n||0>n||n>r)&&(n=r);for(var o="",i=e;n>i;i++)o+=q(t[i]);return o}function O(t,e,n){for(var r=t.slice(e,n),o="",i=0;it)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,n,r,o,s){if(!i.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");if(e>o||s>e)throw new RangeError("value is out of bounds");if(n+r>t.length)throw new RangeError("index out of range")}function L(t,e,n,r){0>e&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-n,2);i>o;o++)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function j(t,e,n,r){0>e&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-n,4);i>o;o++)t[n+o]=e>>>8*(r?o:3-o)&255}function Y(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError("index out of range");if(0>n)throw new RangeError("index out of range")}function k(t,e,n,r,o){return o||Y(t,e,n,4,3.4028234663852886e38,-3.4028234663852886e38),K.write(t,e,n,r,23,4),n+4}function M(t,e,n,r,o){return o||Y(t,e,n,8,1.7976931348623157e308,-1.7976931348623157e308),K.write(t,e,n,r,52,8),n+8}function G(t){if(t=N(t).replace(Q,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function N(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function q(t){return 16>t?"0"+t.toString(16):t.toString(16)}function H(t,e){e=e||1/0;for(var n,r=t.length,o=null,i=[],s=0;r>s;s++){if(n=t.charCodeAt(s),n>55295&&57344>n){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(56320>n){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=(o-55296<<10|n-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,128>n){if((e-=1)<0)break;i.push(n)}else if(2048>n){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(65536>n){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(1114112>n))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function F(t){for(var e=[],n=0;n>8,o=n%256,i.push(o),i.push(r);return i}function X(t){return J.toByteArray(G(t))}function V(t,e,n,r){for(var o=0;r>o&&!(o+n>=e.length||o>=t.length);o++)e[o+n]=t[o];return o}var J=t("base64-js"),K=t("ieee754"),$=t("isarray");n.Buffer=i,n.SlowBuffer=v,n.INSPECT_MAX_BYTES=50,i.poolSize=8192;var Z={};i.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),i._augment=function(t){return t.__proto__=i.prototype,t},i.TYPED_ARRAY_SUPPORT?(i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0})):(i.prototype.length=void 0,i.prototype.parent=void 0),i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.compare=function(t,e){if(!i.isBuffer(t)||!i.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,o=0,s=Math.min(n,r);s>o&&t[o]===e[o];)++o;return o!==s&&(n=t[o],r=e[o]),r>n?-1:n>r?1:0},i.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(t,e){if(!$(t))throw new TypeError("list argument must be an Array of Buffers.");if(0===t.length)return new i(0);var n;if(void 0===e)for(e=0,n=0;n0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},i.prototype.compare=function(t){if(!i.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?0:i.compare(this,t)},i.prototype.indexOf=function(t,e){function n(t,e,n){for(var r=-1,o=0;n+o2147483647?e=2147483647:-2147483648>e&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(0>e&&(e=Math.max(this.length+e,0)),"string"==typeof t)return 0===t.length?-1:String.prototype.indexOf.call(this,t,e);if(i.isBuffer(t))return n(this,t,e);if("number"==typeof t)return i.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):n(this,[t],e);throw new TypeError("val must be string, number or Buffer")},i.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else if(isFinite(e))e=0|e,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0);else{var o=r;r=e,e=0|n,n=o}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(0>n||0>e)||e>this.length)throw new RangeError("attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return b(this,t,e,n);case"utf8":case"utf-8":return E(this,t,e,n);case"ascii":return A(this,t,e,n);case"binary":return T(this,t,e,n);case"base64":return R(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var W=4096;i.prototype.slice=function(t,e){var n=this.length;t=~~t,e=void 0===e?n:~~e,0>t?(t+=n,0>t&&(t=0)):t>n&&(t=n),0>e?(e+=n,0>e&&(e=0)):e>n&&(e=n),t>e&&(e=t);var r;if(i.TYPED_ARRAY_SUPPORT)r=this.subarray(t,e),r.__proto__=i.prototype;else{var o=e-t;r=new i(o,void 0);for(var s=0;o>s;s++)r[s]=this[s+t]}return r.length&&(r.parent=this.parent||this),r},i.prototype.readUIntLE=function(t,e,n){t=0|t,e=0|e,n||B(t,e,this.length);for(var r=this[t],o=1,i=0;++i0&&(o*=256);)r+=this[t+--e]*o;return r},i.prototype.readUInt8=function(t,e){return e||B(t,1,this.length),this[t]},i.prototype.readUInt16LE=function(t,e){return e||B(t,2,this.length),this[t]|this[t+1]<<8},i.prototype.readUInt16BE=function(t,e){return e||B(t,2,this.length),this[t]<<8|this[t+1]},i.prototype.readUInt32LE=function(t,e){return e||B(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},i.prototype.readUInt32BE=function(t,e){return e||B(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},i.prototype.readIntLE=function(t,e,n){t=0|t,e=0|e,n||B(t,e,this.length);for(var r=this[t],o=1,i=0;++i=o&&(r-=Math.pow(2,8*e)),r},i.prototype.readIntBE=function(t,e,n){t=0|t,e=0|e,n||B(t,e,this.length);for(var r=e,o=1,i=this[t+--r];r>0&&(o*=256);)i+=this[t+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*e)),i},i.prototype.readInt8=function(t,e){return e||B(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){e||B(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt16BE=function(t,e){e||B(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt32LE=function(t,e){return e||B(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},i.prototype.readInt32BE=function(t,e){return e||B(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},i.prototype.readFloatLE=function(t,e){return e||B(t,4,this.length),K.read(this,t,!0,23,4)},i.prototype.readFloatBE=function(t,e){return e||B(t,4,this.length),K.read(this,t,!1,23,4)},i.prototype.readDoubleLE=function(t,e){return e||B(t,8,this.length),K.read(this,t,!0,52,8)},i.prototype.readDoubleBE=function(t,e){return e||B(t,8,this.length),K.read(this,t,!1,52,8)},i.prototype.writeUIntLE=function(t,e,n,r){t=+t,e=0|e,n=0|n,r||D(this,t,e,n,Math.pow(2,8*n),0);var o=1,i=0;for(this[e]=255&t;++i=0&&(i*=256);)this[e+o]=t/i&255;return e+n},i.prototype.writeUInt8=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,1,255,0),i.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},i.prototype.writeUInt16LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},i.prototype.writeUInt16BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},i.prototype.writeUInt32LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},i.prototype.writeUInt32BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},i.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e=0|e,!r){var o=Math.pow(2,8*n-1);D(this,t,e,n,o-1,-o)}var i=0,s=1,u=0>t?1:0;for(this[e]=255&t;++i>0)-u&255;return e+n},i.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e=0|e,!r){var o=Math.pow(2,8*n-1);D(this,t,e,n,o-1,-o)}var i=n-1,s=1,u=0>t?1:0;for(this[e+i]=255&t;--i>=0&&(s*=256);)this[e+i]=(t/s>>0)-u&255;return e+n},i.prototype.writeInt8=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,1,127,-128),i.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),0>t&&(t=255+t+1),this[e]=255&t,e+1},i.prototype.writeInt16LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},i.prototype.writeInt16BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},i.prototype.writeInt32LE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},i.prototype.writeInt32BE=function(t,e,n){return t=+t,e=0|e,n||D(this,t,e,4,2147483647,-2147483648),0>t&&(t=4294967295+t+1),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},i.prototype.writeFloatLE=function(t,e,n){return k(this,t,e,!0,n)},i.prototype.writeFloatBE=function(t,e,n){return k(this,t,e,!1,n)},i.prototype.writeDoubleLE=function(t,e,n){return M(this,t,e,!0,n)},i.prototype.writeDoubleBE=function(t,e,n){return M(this,t,e,!1,n)},i.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&n>r&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(0>e)throw new RangeError("targetStart out of bounds");if(0>n||n>=this.length)throw new RangeError("sourceStart out of bounds");if(0>r)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-en&&r>e)for(o=s-1;o>=0;o--)t[o+e]=this[o+n];else if(1e3>s||!i.TYPED_ARRAY_SUPPORT)for(o=0;s>o;o++)t[o+e]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+s),e);return s},i.prototype.fill=function(t,e,n){if(t||(t=0),e||(e=0),n||(n=this.length),e>n)throw new RangeError("end < start");if(n!==e&&0!==this.length){if(0>e||e>=this.length)throw new RangeError("start out of bounds");if(0>n||n>this.length)throw new RangeError("end out of bounds");var r;if("number"==typeof t)for(r=e;n>r;r++)this[r]=t;else{var o=H(t.toString()),i=o.length;for(r=e;n>r;r++)this[r]=o[r%i]}return this}};var Q=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":19,ieee754:23,isarray:21}],21:[function(t,e,n){var r={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},{}],22:[function(e,n,r){(function(r,o){(function(){"use strict";function i(t){return"function"==typeof t||"object"==typeof t&&null!==t}function s(t){return"function"==typeof t}function u(t){X=t}function a(t){$=t}function f(){return function(){r.nextTick(d)}}function c(){return function(){z(d)}}function h(){var t=0,e=new Q(d),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function l(){var t=new MessageChannel;return t.port1.onmessage=d,function(){t.port2.postMessage(0)}}function p(){return function(){setTimeout(d,1)}}function d(){for(var t=0;K>t;t+=2){var e=nt[t],n=nt[t+1];e(n),nt[t]=void 0,nt[t+1]=void 0}K=0}function g(){try{var t=e,n=t("vertx");return z=n.runOnLoop||n.runOnContext,c()}catch(r){return p()}}function y(t,e){var n=this,r=n._state;if(r===st&&!t||r===ut&&!e)return this;var o=new this.constructor(m),i=n._result;if(r){var s=arguments[r-1];$(function(){D(r,o,s,i)})}else x(n,o,t,e);return o}function v(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(m);return S(n,t),n}function m(){}function w(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function E(t){try{return t.then; -}catch(e){return at.error=e,at}}function A(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function T(t,e,n){$(function(t){var r=!1,o=A(n,e,function(n){r||(r=!0,e!==n?S(t,n):U(t,n))},function(e){r||(r=!0,P(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,P(t,o))},t)}function R(t,e){e._state===st?U(t,e._result):e._state===ut?P(t,e._result):x(e,void 0,function(e){S(t,e)},function(e){P(t,e)})}function _(t,e,n){e.constructor===t.constructor&&n===rt&&constructor.resolve===ot?R(t,e):n===at?P(t,at.error):void 0===n?U(t,e):s(n)?T(t,e,n):U(t,e)}function S(t,e){t===e?P(t,w()):i(e)?_(t,e,E(e)):U(t,e)}function C(t){t._onerror&&t._onerror(t._result),I(t)}function U(t,e){t._state===it&&(t._result=e,t._state=st,0!==t._subscribers.length&&$(I,t))}function P(t,e){t._state===it&&(t._state=ut,t._result=e,$(C,t))}function x(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+st]=n,o[i+ut]=r,0===i&&t._state&&$(I,t)}function I(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r,o,i=t._result,s=0;ss;s++)x(r.resolve(t[s]),void 0,e,n);return o}function k(t){var e=this,n=new e(m);return P(n,t),n}function M(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function G(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function N(t){this._id=pt++,this._state=void 0,this._result=void 0,this._subscribers=[],m!==t&&("function"!=typeof t&&M(),this instanceof N?L(this,t):G())}function q(t,e){this._instanceConstructor=t,this.promise=new t(m),Array.isArray(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?U(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&U(this.promise,this._result))):P(this.promise,this._validationError())}function H(){var t;if("undefined"!=typeof o)t=o;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;n&&"[object Promise]"===Object.prototype.toString.call(n.resolve())&&!n.cast||(t.Promise=dt)}var F;F=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var z,X,V,J=F,K=0,$=function(t,e){nt[K]=t,nt[K+1]=e,K+=2,2===K&&(X?X(d):V())},Z="undefined"!=typeof window?window:void 0,W=Z||{},Q=W.MutationObserver||W.WebKitMutationObserver,tt="undefined"!=typeof r&&"[object process]"==={}.toString.call(r),et="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,nt=new Array(1e3);V=tt?f():Q?h():et?l():void 0===Z&&"function"==typeof e?g():p();var rt=y,ot=v,it=void 0,st=1,ut=2,at=new O,ft=new O,ct=j,ht=Y,lt=k,pt=0,dt=N;N.all=ct,N.race=ht,N.resolve=ot,N.reject=lt,N._setScheduler=u,N._setAsap=a,N._asap=$,N.prototype={constructor:N,then:rt,"catch":function(t){return this.then(null,t)}};var gt=q;q.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},q.prototype._enumerate=function(){for(var t=this.length,e=this._input,n=0;this._state===it&&t>n;n++)this._eachEntry(e[n],n)},q.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===ot){var o=E(t);if(o===rt&&t._state!==it)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===dt){var i=new n(m);_(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){e(t)}),e)}else this._willSettleAt(r(t),e)},q.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===it&&(this._remaining--,t===ut?P(r,n):this._result[e]=n),0===this._remaining&&U(r,this._result)},q.prototype._willSettleAt=function(t,e){var n=this;x(t,void 0,function(t){n._settledAt(st,e,t)},function(t){n._settledAt(ut,e,t)})};var yt=H,vt={Promise:dt,polyfill:yt};"function"==typeof t&&t.amd?t(function(){return vt}):"undefined"!=typeof n&&n.exports?n.exports=vt:"undefined"!=typeof this&&(this.ES6Promise=vt),yt()}).call(this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:24}],23:[function(t,e,n){n.read=function(t,e,n,r,o){var i,s,u=8*o-r-1,a=(1<>1,c=-7,h=n?o-1:0,l=n?-1:1,p=t[e+h];for(h+=l,i=p&(1<<-c)-1,p>>=-c,c+=u;c>0;i=256*i+t[e+h],h+=l,c-=8);for(s=i&(1<<-c)-1,i>>=-c,c+=r;c>0;s=256*s+t[e+h],h+=l,c-=8);if(0===i)i=1-f;else{if(i===a)return s?NaN:(p?-1:1)*(1/0);s+=Math.pow(2,r),i-=f}return(p?-1:1)*s*Math.pow(2,i-r)},n.write=function(t,e,n,r,o,i){var s,u,a,f=8*i-o-1,c=(1<>1,l=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=0>e||0===e&&0>1/e?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(a=Math.pow(2,-s))<1&&(s--,a*=2),e+=s+h>=1?l/a:l*Math.pow(2,1-h),e*a>=2&&(s++,a/=2),s+h>=c?(u=0,s=c):s+h>=1?(u=(e*a-1)*Math.pow(2,o),s+=h):(u=e*Math.pow(2,h-1)*Math.pow(2,o),s=0));o>=8;t[n+p]=255&u,p+=d,u/=256,o-=8);for(s=s<0;t[n+p]=255&s,p+=d,s/=256,f-=8);t[n+p-d]|=128*g}},{}],24:[function(t,e,n){function r(){c=!1,u.length?f=u.concat(f):h=-1,f.length&&o()}function o(){if(!c){var t=setTimeout(r);c=!0;for(var e=f.length;e;){for(u=f,f=[];++h1)for(var n=1;no;)e=t.charCodeAt(o++),e>=55296&&56319>=e&&i>o?(n=t.charCodeAt(o++),56320==(64512&n)?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--)):r.push(e);return r}function s(t){for(var e,n=t.length,r=-1,o="";++r65535&&(e-=65536,o+=b(e>>>10&1023|55296),e=56320|1023&e),o+=b(e);return o}function u(t){if(t>=55296&&57343>=t)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function a(t,e){return b(t>>e&63|128)}function f(t){if(0==(4294967168&t))return b(t);var e="";return 0==(4294965248&t)?e=b(t>>6&31|192):0==(4294901760&t)?(u(t),e=b(t>>12&15|224),e+=a(t,6)):0==(4292870144&t)&&(e=b(t>>18&7|240),e+=a(t,12),e+=a(t,6)),e+=b(63&t|128)}function c(t){for(var e,n=i(t),r=n.length,o=-1,s="";++o=m)throw Error("Invalid byte index");var t=255&v[w];if(w++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function l(){var t,e,n,r,o;if(w>m)throw Error("Invalid byte index");if(w==m)return!1;if(t=255&v[w],w++,0==(128&t))return t;if(192==(224&t)){var e=h();if(o=(31&t)<<6|e,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&t)){if(e=h(),n=h(),o=(15&t)<<12|e<<6|n,o>=2048)return u(o),o;throw Error("Invalid continuation byte")}if(240==(248&t)&&(e=h(),n=h(),r=h(),o=(15&t)<<18|e<<12|n<<6|r,o>=65536&&1114111>=o))return o;throw Error("Invalid UTF-8 detected")}function p(t){v=i(t),m=v.length,w=0;for(var e,n=[];(e=l())!==!1;)n.push(e);return s(n)}var d="object"==typeof r&&r,g="object"==typeof n&&n&&n.exports==d&&n,y="object"==typeof e&&e;y.global!==y&&y.window!==y||(o=y);var v,m,w,b=String.fromCharCode,E={version:"2.0.0",encode:c,decode:p};if("function"==typeof t&&"object"==typeof t.amd&&t.amd)t(function(){return E});else if(d&&!d.nodeType)if(g)g.exports=E;else{var A={},T=A.hasOwnProperty;for(var R in E)T.call(E,R)&&(d[R]=E[R])}else o.utf8=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],26:[function(e,n,r){(function(o){!function(o,i){if("function"==typeof t&&t.amd)t(["module","utf8","axios","base-64","es6-promise"],i);else if("undefined"!=typeof r)i(n,e("utf8"),e("axios"),e("base-64"),e("es6-promise"));else{var s={exports:{}};i(s,o.utf8,o.axios,o.base64,o.Promise),o.github=s.exports}}(this,function(t,e,n,r,i){"use strict";function s(t){return r.encode(e.encode(t))}function u(t){t=t||{};var r=t.apiUrl||"https://api.github.com",i=u._request=function(e,o,i,u,f){function c(){var t=o.indexOf("//")>=0?o:r+o;if(t+=/\?/.test(t)?"&":"?",i&&"object"===("undefined"==typeof i?"undefined":a(i))&&["GET","HEAD","DELETE"].indexOf(e)>-1)for(var n in i)i.hasOwnProperty(n)&&(t+="&"+encodeURIComponent(n)+"="+encodeURIComponent(i[n]));return t.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var h={headers:{Accept:f?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:e,data:i?i:{},url:c()};return(t.token||t.username&&t.password)&&(h.headers.Authorization=t.token?"token "+t.token:"Basic "+s(t.username+":"+t.password)),n(h).then(function(t){u(null,t.data||!0,t)},function(t){304===t.status?u(null,t.data||!0,t):u({path:o,request:t,error:t.status})})},f=u._requestAllPages=function(t,e,n){var r=[];!function o(){i("GET",t,null,function(i,s,u){if(i)return n(i);s instanceof Array||(s=[s]),r.push.apply(r,s);var a=(u.headers.link||"").split(",").filter(function(t){return/rel="next"/.test(t)}).map(function(t){return(/<(.*)>/.exec(t)||[])[1]}).pop();!a||e?n(i,r,u):(t=a,o())})}()};return u.User=function(){this.repos=function(t,e){"function"==typeof t&&(e=t,t={}),t=t||{};var n="/user/repos",r=[];r.push("type="+encodeURIComponent(t.type||"all")),r.push("sort="+encodeURIComponent(t.sort||"updated")),r.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&r.push("page="+encodeURIComponent(t.page)),n+="?"+r.join("&"),f(n,!!t.page,e)},this.orgs=function(t){i("GET","/user/orgs",null,t)},this.gists=function(t){i("GET","/gists",null,t)},this.notifications=function(t,e){"function"==typeof t&&(e=t,t={}),t=t||{};var n="/notifications",r=[];if(t.all&&r.push("all=true"),t.participating&&r.push("participating=true"),t.since){var o=t.since;o.constructor===Date&&(o=o.toISOString()),r.push("since="+encodeURIComponent(o))}if(t.before){var s=t.before;s.constructor===Date&&(s=s.toISOString()),r.push("before="+encodeURIComponent(s))}t.page&&r.push("page="+encodeURIComponent(t.page)),r.length>0&&(n+="?"+r.join("&")),i("GET",n,null,e)},this.show=function(t,e){var n=t?"/users/"+t:"/user";i("GET",n,null,e)},this.userRepos=function(t,e,n){"function"==typeof e&&(n=e,e={});var r="/users/"+t+"/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),r+="?"+o.join("&"),f(r,!!e.page,n)},this.userStarred=function(t,e){var n="/users/"+t+"/starred?type=all&per_page=100";f(n,!1,e)},this.userGists=function(t,e){i("GET","/users/"+t+"/gists",null,e)},this.orgRepos=function(t,e){var n="/orgs/"+t+"/repos?type=all&&page_num=100&sort=updated&direction=desc";f(n,!1,e)},this.follow=function(t,e){i("PUT","/user/following/"+t,null,e)},this.unfollow=function(t,e){i("DELETE","/user/following/"+t,null,e)},this.createRepo=function(t,e){i("POST","/user/repos",t,e)}},u.Repository=function(t){function n(t,e){return t===l.branch&&l.sha?e(null,l.sha):void h.getRef("heads/"+t,function(n,r){l.branch=t,l.sha=r,e(n,r)})}var r,a=t.name,f=t.user,c=t.fullname,h=this;r=c?"/repos/"+c:"/repos/"+f+"/"+a;var l={branch:null,sha:null};this.getRef=function(t,e){i("GET",r+"/git/refs/"+t,null,function(t,n,r){return t?e(t):void e(null,n.object.sha,r)})},this.createRef=function(t,e){i("POST",r+"/git/refs",t,e)},this.deleteRef=function(e,n){i("DELETE",r+"/git/refs/"+e,t,n)},this.deleteRepo=function(e){i("DELETE",r,t,e)},this.listTags=function(t){i("GET",r+"/tags",null,t)},this.listPulls=function(t,e){t=t||{};var n=r+"/pulls",o=[];"string"==typeof t?o.push("state="+t):(t.state&&o.push("state="+encodeURIComponent(t.state)),t.head&&o.push("head="+encodeURIComponent(t.head)),t.base&&o.push("base="+encodeURIComponent(t.base)),t.sort&&o.push("sort="+encodeURIComponent(t.sort)),t.direction&&o.push("direction="+encodeURIComponent(t.direction)),t.page&&o.push("page="+t.page),t.per_page&&o.push("per_page="+t.per_page)),o.length>0&&(n+="?"+o.join("&")),i("GET",n,null,e)},this.getPull=function(t,e){i("GET",r+"/pulls/"+t,null,e)},this.compare=function(t,e,n){i("GET",r+"/compare/"+t+"..."+e,null,n)},this.listBranches=function(t){i("GET",r+"/git/refs/heads",null,function(e,n,r){return e?t(e):(n=n.map(function(t){return t.ref.replace(/^refs\/heads\//,"")}),void t(null,n,r))})},this.getBlob=function(t,e){i("GET",r+"/git/blobs/"+t,null,e,"raw")},this.getCommit=function(t,e,n){i("GET",r+"/git/commits/"+e,null,n)},this.getSha=function(t,e,n){return e&&""!==e?void i("GET",r+"/contents/"+e+(t?"?ref="+t:""),null,function(t,e,r){return t?n(t):void n(null,e.sha,r)}):h.getRef("heads/"+t,n)},this.getStatuses=function(t,e){i("GET",r+"/statuses/"+t,null,e)},this.getTree=function(t,e){i("GET",r+"/git/trees/"+t,null,function(t,n,r){return t?e(t):void e(null,n.tree,r)})},this.postBlob=function(t,n){if("string"==typeof t)t={content:e.encode(t),encoding:"utf-8"};else if("undefined"!=typeof o&&t instanceof o)t={content:t.toString("base64"),encoding:"base64"};else{if(!("undefined"!=typeof Blob&&t instanceof Blob))throw new Error("Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)");t={content:s(t),encoding:"base64"}}i("POST",r+"/git/blobs",t,function(t,e,r){return t?n(t):void n(null,e.sha,r)})},this.updateTree=function(t,e,n,o){var s={base_tree:t,tree:[{path:e,mode:"100644",type:"blob",sha:n}]};i("POST",r+"/git/trees",s,function(t,e,n){return t?o(t):void o(null,e.sha,n)})},this.postTree=function(t,e){i("POST",r+"/git/trees",{tree:t},function(t,n,r){return t?e(t):void e(null,n.sha,r)})},this.commit=function(e,n,o,s){var a=new u.User;a.show(null,function(u,a){if(u)return s(u);var f={message:o,author:{name:t.user,email:a.email},parents:[e],tree:n};i("POST",r+"/git/commits",f,function(t,e,n){return t?s(t):(l.sha=e.sha,void s(null,e.sha,n))})})},this.updateHead=function(t,e,n){i("PATCH",r+"/git/refs/heads/"+t,{sha:e},n)},this.show=function(t){i("GET",r,null,t)},this.contributors=function(t,e){e=e||1e3;var n=this;i("GET",r+"/stats/contributors",null,function(r,o,i){return r?t(r):void(202===i.status?setTimeout(function(){n.contributors(t,e)},e):t(r,o,i))})},this.contents=function(t,e,n){e=encodeURI(e),i("GET",r+"/contents"+(e?"/"+e:""),{ref:t},n)},this.fork=function(t){i("POST",r+"/forks",null,t)},this.listForks=function(t){i("GET",r+"/forks",null,t)},this.branch=function(t,e,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=e,e=t,t="master"),this.getRef("heads/"+t,function(t,r){return t&&n?n(t):void h.createRef({ref:"refs/heads/"+e,sha:r},n)})},this.createPullRequest=function(t,e){i("POST",r+"/pulls",t,e)},this.listHooks=function(t){i("GET",r+"/hooks",null,t)},this.getHook=function(t,e){i("GET",r+"/hooks/"+t,null,e)},this.createHook=function(t,e){i("POST",r+"/hooks",t,e)},this.editHook=function(t,e,n){i("PATCH",r+"/hooks/"+t,e,n)},this.deleteHook=function(t,e){i("DELETE",r+"/hooks/"+t,null,e)},this.read=function(t,e,n){i("GET",r+"/contents/"+encodeURI(e)+(t?"?ref="+t:""),null,n,!0)},this.remove=function(t,e,n){h.getSha(t,e,function(o,s){return o?n(o):void i("DELETE",r+"/contents/"+e,{message:e+" is removed",sha:s,branch:t},n)})},this["delete"]=this.remove,this.move=function(t,e,r,o){n(t,function(n,i){h.getTree(i+"?recursive=true",function(n,s){s.forEach(function(t){t.path===e&&(t.path=r),"tree"===t.type&&delete t.sha}),h.postTree(s,function(n,r){h.commit(i,r,"Deleted "+e,function(e,n){h.updateHead(t,n,o)})})})})},this.write=function(t,e,n,o,u,a){"function"==typeof u&&(a=u,u={}),h.getSha(t,encodeURI(e),function(f,c){var h={message:o,content:"undefined"==typeof u.encode||u.encode?s(n):n,branch:t,committer:u&&u.committer?u.committer:void 0,author:u&&u.author?u.author:void 0};f&&404!==f.error||(h.sha=c),i("PUT",r+"/contents/"+encodeURI(e),h,a)})},this.getCommits=function(t,e){t=t||{};var n=r+"/commits",o=[];if(t.sha&&o.push("sha="+encodeURIComponent(t.sha)),t.path&&o.push("path="+encodeURIComponent(t.path)),t.author&&o.push("author="+encodeURIComponent(t.author)),t.since){var s=t.since;s.constructor===Date&&(s=s.toISOString()),o.push("since="+encodeURIComponent(s))}if(t.until){var u=t.until;u.constructor===Date&&(u=u.toISOString()),o.push("until="+encodeURIComponent(u))}t.page&&o.push("page="+t.page),t.perpage&&o.push("per_page="+t.perpage),o.length>0&&(n+="?"+o.join("&")),i("GET",n,null,e)},this.isStarred=function(t,e,n){i("GET","/user/starred/"+t+"/"+e,null,n)},this.star=function(t,e,n){i("PUT","/user/starred/"+t+"/"+e,null,n)},this.unstar=function(t,e,n){i("DELETE","/user/starred/"+t+"/"+e,null,n)},this.createRelease=function(t,e){i("POST",r+"/releases",t,e)},this.editRelease=function(t,e,n){i("PATCH",r+"/releases/"+t,e,n)},this.getRelease=function(t,e){i("GET",r+"/releases/"+t,null,e)},this.deleteRelease=function(t,e){i("DELETE",r+"/releases/"+t,null,e)}},u.Gist=function(t){var e=t.id,n="/gists/"+e;this.read=function(t){i("GET",n,null,t)},this.create=function(t,e){i("POST","/gists",t,e)},this["delete"]=function(t){i("DELETE",n,null,t)},this.fork=function(t){i("POST",n+"/fork",null,t)},this.update=function(t,e){i("PATCH",n,t,e)},this.star=function(t){i("PUT",n+"/star",null,t)},this.unstar=function(t){i("DELETE",n+"/star",null,t)},this.isStarred=function(t){i("GET",n+"/star",null,t)}},u.Issue=function(t){var e="/repos/"+t.user+"/"+t.repo+"/issues";this.create=function(t,n){i("POST",e,t,n)},this.list=function(t,n){var r=[];Object.keys(t).forEach(function(e){r.push(encodeURIComponent(e)+"="+encodeURIComponent(t[e]))}),f(e+"?"+r.join("&"),!!t.page,n)},this.comment=function(t,e,n){i("POST",t.comments_url,{body:e},n)},this.edit=function(t,n,r){i("PATCH",e+"/"+t,n,r)},this.get=function(t,n){i("GET",e+"/"+t,null,n)}},u.Search=function(t){var e="/search/",n="?q="+t.query;this.repositories=function(t,r){i("GET",e+"repositories"+n,t,r)},this.code=function(t,r){i("GET",e+"code"+n,t,r)},this.issues=function(t,r){i("GET",e+"issues"+n,t,r)},this.users=function(t,r){i("GET",e+"users"+n,t,r)}},u.RateLimit=function(){this.getRateLimit=function(t){i("GET","/rate_limit",null,t)}},u}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};i.polyfill&&i.polyfill(),u.getIssues=function(t,e){return new u.Issue({user:t,repo:e})},u.getRepo=function(t,e){return e?new u.Repository({user:t,name:e}):new u.Repository({fullname:t})},u.getUser=function(){return new u.User},u.getGist=function(t){return new u.Gist({id:t})},u.getSearch=function(t){return new u.Search({query:t})},u.getRateLimit=function(){return new u.RateLimit},t.exports=u})}).call(this,e("buffer").Buffer)},{axios:1,"base-64":18,buffer:20,"es6-promise":22,utf8:25}]},{},[26])(26)}); -//# sourceMappingURL=github.bundle.min.js.map diff --git a/dist/github.bundle.min.js.map b/dist/github.bundle.min.js.map deleted file mode 100644 index 1e78aff2..00000000 --- a/dist/github.bundle.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/axios/index.js","github.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/btoa.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/transformData.js","node_modules/axios/lib/utils.js","node_modules/base-64/base64.js","node_modules/base64-js/lib/b64.js","node_modules/buffer/index.js","node_modules/buffer/node_modules/isarray/index.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/ieee754/index.js","node_modules/process/browser.js","node_modules/utf8/utf8.js","src/github.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Github","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"./lib/axios",2,"utils","buildURL","parseHeaders","transformData","isURLSameOrigin","btoa","resolve","reject","config","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","XDomainRequest","url","auth","username","password","Authorization","open","method","toUpperCase","params","paramsSerializer","timeout","onload","responseHeaders","getAllResponseHeaders","responseData","indexOf","responseType","responseText","response","transformResponse","status","statusText","onerror","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","xsrfCookieName","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isArrayBuffer","DataView","send","./../helpers/btoa","./../helpers/buildURL","./../helpers/cookies","./../helpers/isURLSameOrigin","./../helpers/parseHeaders","./../helpers/transformData","./../utils",3,"Axios","defaultConfig","defaults","merge","interceptors","InterceptorManager","dispatchRequest","isAbsoluteURL","combineURLs","bind","prototype","arguments","baseURL","transformRequest","common","chain","promise","Promise","interceptor","unshift","fulfilled","rejected","push","then","shift","defaultInstance","axios","create","all","promises","spread","./core/InterceptorManager","./core/dispatchRequest","./defaults","./helpers/bind","./helpers/combineURLs","./helpers/isAbsoluteURL","./helpers/spread","./helpers/transformData","./utils",4,"handlers","use","eject","id","fn","h",5,"process","adapter","../adapters/http","../adapters/xhr","_process",6,"PROTECTION_PREFIX","DEFAULT_CONTENT_TYPE","Content-Type","isArrayBufferView","buffer","isObject","isFile","isBlob","isUndefined","JSON","stringify","replace","parse","Accept","patch","post","put",7,"thisArg","args","Array","apply",8,"InvalidCharacterError","message","input","block","charCode","str","String","output","idx","map","chars","charAt","charCodeAt","name",9,"encode","encodeURIComponent","serializedParams","parts","isArray","v","isDate","toISOString","join",10,"relativeURL",11,"write","value","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now",12,"test",13,"resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","originURL","navigator","userAgent","createElement","location","requestURL","parsed",14,"split","line","trim","substr",15,"callback","arr",16,"fns",17,"toString","result","ArrayBuffer","isView","obj","hasOwnProperty","assignValue","Object",18,"root","freeExports","freeModule","freeGlobal","error","TABLE","REGEX_SPACE_CHARACTERS","decode","bitStorage","bitCounter","position","fromCharCode","b","c","padding","base64","version","nodeType",19,"init","len","lookup","revLookup","toByteArray","b64","j","tmp","placeHolders","Arr","L","tripletToBase64","num","encodeChunk","uint8","start","end","fromByteArray","extraBytes","maxChunkLength","len2","Uint8Array",20,"typedArraySupport","foo","subarray","byteLength","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","arg","parent","fromNumber","fromString","fromObject","that","allocate","checked","string","encoding","object","isBuffer","fromBuffer","fromArray","TypeError","fromTypedArray","fromArrayBuffer","fromArrayLike","fromJsonObject","copy","array","__proto__","type","fromPool","poolSize","rootParent","RangeError","SlowBuffer","subject","buf","loweredCase","utf8ToBytes","base64ToBytes","slowToString","Infinity","hexSlice","utf8Slice","asciiSlice","binarySlice","base64Slice","utf16leSlice","hexWrite","offset","Number","remaining","strLen","parseInt","isNaN","utf8Write","blitBuffer","asciiWrite","asciiToBytes","binaryWrite","base64Write","ucs2Write","utf16leToBytes","slice","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","leadSurrogate","byteArray","hi","lo","src","dst","INSPECT_MAX_BYTES","_augment","Symbol","species","defineProperty","configurable","_isBuffer","compare","x","y","isEncoding","concat","list","pos","item","equals","inspect","byteOffset","arrayIndexOf","foundIndex","isFinite","swap","toJSON","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","target","targetStart","set","fill","base64-js","isarray",21,22,"lib$es6$promise$utils$$objectOrFunction","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","observer","lib$es6$promise$asap$$BrowserMutationObserver","node","createTextNode","observe","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","setTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","state","_state","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","child","constructor","lib$es6$promise$$internal$$noop","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","Constructor","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","reason","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","detail","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","race","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill",23,"isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","rt","abs","log","LN2",24,"cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","clearTimeout","Item","fun","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask",25,"ucs2decode","extra","counter","ucs2encode","index","stringFromCharCode","checkScalarValue","createByte","encodeCodePoint","symbol","utf8encode","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","utf8",26,"factory","mod","github","Utf8","Base64","b64encode","options","API_URL","apiUrl","_request","cb","raw","getURL","_typeof","param","getTime","token","_requestAllPages","singlePage","results","iterate","err","xhr","next","link","filter","exec","pop","User","repos","sort","per_page","page","orgs","gists","notifications","participating","since","before","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Repository","updateTree","branch","currentTree","sha","getRef","repoPath","repo","user","fullname","ref","createRef","deleteRef","deleteRepo","listTags","listPulls","head","base","direction","getPull","number","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","Blob","baseTree","blob","base_tree","mode","postTree","commit","userData","author","email","parents","updateHead","contributors","retry","contents","encodeURI","fork","listForks","oldBranch","newBranch","createPullRequest","listHooks","getHook","createHook","editHook","deleteHook","move","newPath","latestCommit","rootTree","writeOptions","committer","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","update","Issue","query","keys","option","comment","issue","comments_url","body","edit","get","Search","repositories","issues","users","RateLimit","getRateLimit","iterator","getIssues","getRepo","getUser","getGist","getSearch","base-64","es6-promise"],"mappings":"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","file":"github.bundle.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && response.status < 300) ||\n (!('status' in request) && response.responseText) ?\n resolve :\n reject)(response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new Error('Network Error'));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n if (request.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n if (utils.isArrayBuffer(requestData)) {\n requestData = new DataView(requestData);\n }\n\n // Send the request\n request.send(requestData);\n};\n\n},{\"./../helpers/btoa\":8,\"./../helpers/buildURL\":9,\"./../helpers/cookies\":11,\"./../helpers/isURLSameOrigin\":13,\"./../helpers/parseHeaders\":14,\"./../helpers/transformData\":16,\"./../utils\":17}],3:[function(require,module,exports){\n'use strict';\n\nvar defaults = require('./defaults');\nvar utils = require('./utils');\nvar dispatchRequest = require('./core/dispatchRequest');\nvar InterceptorManager = require('./core/InterceptorManager');\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\nvar combineURLs = require('./helpers/combineURLs');\nvar bind = require('./helpers/bind');\nvar transformData = require('./helpers/transformData');\n\nfunction Axios(defaultConfig) {\n this.defaults = utils.merge({}, defaultConfig);\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Don't allow overriding defaults.withCredentials\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nvar defaultInstance = new Axios(defaults);\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\n\naxios.create = function create(defaultConfig) {\n return new Axios(defaultConfig);\n};\n\n// Expose defaults\naxios.defaults = defaultInstance.defaults;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose interceptors\naxios.interceptors = defaultInstance.interceptors;\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n\n},{\"./core/InterceptorManager\":4,\"./core/dispatchRequest\":5,\"./defaults\":6,\"./helpers/bind\":7,\"./helpers/combineURLs\":10,\"./helpers/isAbsoluteURL\":12,\"./helpers/spread\":15,\"./helpers/transformData\":16,\"./utils\":17}],4:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n},{\"./../utils\":17}],5:[function(require,module,exports){\n(function (process){\n'use strict';\n\n/**\n * Dispatch a request to the server using whichever adapter\n * is supported by the current environment.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n return new Promise(function executor(resolve, reject) {\n try {\n var adapter;\n\n if (typeof config.adapter === 'function') {\n // For custom adapter support\n adapter = config.adapter;\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n\n if (typeof adapter === 'function') {\n adapter(resolve, reject, config);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n\n}).call(this,require('_process'))\n\n},{\"../adapters/http\":2,\"../adapters/xhr\":2,\"_process\":24}],6:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nmodule.exports = {\n transformRequest: [function transformResponseJSON(data, headers) {\n if (utils.isFormData(data)) {\n return data;\n }\n if (utils.isArrayBuffer(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\n // Set application/json if no Content-Type has been specified\n if (!utils.isUndefined(headers)) {\n utils.forEach(headers, function processContentTypeHeader(val, key) {\n if (key.toLowerCase() === 'content-type') {\n headers['Content-Type'] = val;\n }\n });\n\n if (utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = 'application/json;charset=utf-8';\n }\n }\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponseJSON(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n data = data.replace(PROTECTION_PREFIX, '');\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n },\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\n post: utils.merge(DEFAULT_CONTENT_TYPE),\n put: utils.merge(DEFAULT_CONTENT_TYPE)\n },\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN'\n};\n\n},{\"./utils\":17}],7:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n},{}],8:[function(require,module,exports){\n'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\nInvalidCharacterError.prototype = new Error;\nInvalidCharacterError.prototype.code = 5;\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n},{\"./../utils\":17}],10:[function(require,module,exports){\n'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\n};\n\n},{}],11:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n},{\"./../utils\":17}],12:[function(require,module,exports){\n'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n},{}],13:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n},{\"./../utils\":17}],14:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\n},{\"./../utils\":17}],15:[function(require,module,exports){\n'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n},{}],16:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n},{\"./../utils\":17}],17:[function(require,module,exports){\n'use strict';\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n trim: trim\n};\n\n},{}],18:[function(require,module,exports){\n(function (global){\n/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n'use strict'\n\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nfunction init () {\n var i\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n var len = code.length\n\n for (i = 0; i < len; i++) {\n lookup[i] = code[i]\n }\n\n for (i = 0; i < len; ++i) {\n revLookup[code.charCodeAt(i)] = i\n }\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\ninit()\n\nfunction toByteArray (b64) {\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp & 0xFF0000) >> 16\n arr[L++] = (tmp & 0xFF00) >> 8\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n\n},{}],20:[function(require,module,exports){\n(function (global){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\nBuffer.poolSize = 8192 // not used by this implementation\n\nvar rootParent = {}\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.foo = function () { return 42 }\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\nfunction Buffer (arg) {\n if (!(this instanceof Buffer)) {\n // Avoid going through an ArgumentsAdaptorTrampoline in the common case.\n if (arguments.length > 1) return new Buffer(arg, arguments[1])\n return new Buffer(arg)\n }\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n this.length = 0\n this.parent = undefined\n }\n\n // Common case.\n if (typeof arg === 'number') {\n return fromNumber(this, arg)\n }\n\n // Slightly less common case.\n if (typeof arg === 'string') {\n return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')\n }\n\n // Unusual.\n return fromObject(this, arg)\n}\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction fromNumber (that, length) {\n that = allocate(that, length < 0 ? 0 : checked(length) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < length; i++) {\n that[i] = 0\n }\n }\n return that\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'\n\n // Assumption: byteLength() return value is always < kMaxLength.\n var length = byteLength(string, encoding) | 0\n that = allocate(that, length)\n\n that.write(string, encoding)\n return that\n}\n\nfunction fromObject (that, object) {\n if (Buffer.isBuffer(object)) return fromBuffer(that, object)\n\n if (isArray(object)) return fromArray(that, object)\n\n if (object == null) {\n throw new TypeError('must start with number, buffer, array or string')\n }\n\n if (typeof ArrayBuffer !== 'undefined') {\n if (object.buffer instanceof ArrayBuffer) {\n return fromTypedArray(that, object)\n }\n if (object instanceof ArrayBuffer) {\n return fromArrayBuffer(that, object)\n }\n }\n\n if (object.length) return fromArrayLike(that, object)\n\n return fromJsonObject(that, object)\n}\n\nfunction fromBuffer (that, buffer) {\n var length = checked(buffer.length) | 0\n that = allocate(that, length)\n buffer.copy(that, 0, 0, length)\n return that\n}\n\nfunction fromArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Duplicate of fromArray() to keep fromArray() monomorphic.\nfunction fromTypedArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n // Truncating the elements is probably not what people expect from typed\n // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior\n // of the old Buffer constructor.\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(array)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromTypedArray(that, new Uint8Array(array))\n }\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.\n// Returns a zero-length buffer for inputs that don't conform to the spec.\nfunction fromJsonObject (that, object) {\n var array\n var length = 0\n\n if (object.type === 'Buffer' && isArray(object.data)) {\n array = object.data\n length = checked(array.length) | 0\n }\n that = allocate(that, length)\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n} else {\n // pre-set for values that may exist in the future\n Buffer.prototype.length = undefined\n Buffer.prototype.parent = undefined\n}\n\nfunction allocate (that, length) {\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that.length = length\n }\n\n var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1\n if (fromPool) that.parent = rootParent\n\n return that\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (subject, encoding) {\n if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)\n\n var buf = new Buffer(subject, encoding)\n delete buf.parent\n return buf\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n var i = 0\n var len = Math.min(x, y)\n while (i < len) {\n if (a[i] !== b[i]) break\n\n ++i\n }\n\n if (i !== len) {\n x = a[i]\n y = b[i]\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'raw':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')\n\n if (list.length === 0) {\n return new Buffer(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; i++) {\n length += list[i].length\n }\n }\n\n var buf = new Buffer(length)\n var pos = 0\n for (i = 0; i < list.length; i++) {\n var item = list[i]\n item.copy(buf, pos)\n pos += item.length\n }\n return buf\n}\n\nfunction byteLength (string, encoding) {\n if (typeof string !== 'string') string = '' + string\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'binary':\n // Deprecated\n case 'raw':\n case 'raws':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n start = start | 0\n end = end === undefined || end === Infinity ? this.length : end | 0\n\n if (!encoding) encoding = 'utf8'\n if (start < 0) start = 0\n if (end > this.length) end = this.length\n if (end <= start) return ''\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'binary':\n return binarySlice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return 0\n return Buffer.compare(this, b)\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset) {\n if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff\n else if (byteOffset < -0x80000000) byteOffset = -0x80000000\n byteOffset >>= 0\n\n if (this.length === 0) return -1\n if (byteOffset >= this.length) return -1\n\n // Negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)\n\n if (typeof val === 'string') {\n if (val.length === 0) return -1 // special case: looking for empty string always fails\n return String.prototype.indexOf.call(this, val, byteOffset)\n }\n if (Buffer.isBuffer(val)) {\n return arrayIndexOf(this, val, byteOffset)\n }\n if (typeof val === 'number') {\n if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {\n return Uint8Array.prototype.indexOf.call(this, val, byteOffset)\n }\n return arrayIndexOf(this, [ val ], byteOffset)\n }\n\n function arrayIndexOf (arr, val, byteOffset) {\n var foundIndex = -1\n for (var i = 0; byteOffset + i < arr.length; i++) {\n if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex\n } else {\n foundIndex = -1\n }\n }\n return -1\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new Error('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; i++) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) throw new Error('Invalid hex string')\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction binaryWrite (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n var swap = encoding\n encoding = offset\n offset = length | 0\n length = swap\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'binary':\n return binaryWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction binarySlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; i++) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; i++) {\n newBuf[i] = this[i + start]\n }\n }\n\n if (newBuf.length) newBuf.parent = this.parent || this\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('value is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n if (offset < 0) throw new RangeError('index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; i--) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; i++) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// fill(value, start=0, end=buffer.length)\nBuffer.prototype.fill = function fill (value, start, end) {\n if (!value) value = 0\n if (!start) start = 0\n if (!end) end = this.length\n\n if (end < start) throw new RangeError('end < start')\n\n // Fill 0 bytes; we're done\n if (end === start) return\n if (this.length === 0) return\n\n if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')\n if (end < 0 || end > this.length) throw new RangeError('end out of bounds')\n\n var i\n if (typeof value === 'number') {\n for (i = start; i < end; i++) {\n this[i] = value\n }\n } else {\n var bytes = utf8ToBytes(value.toString())\n var len = bytes.length\n for (i = start; i < end; i++) {\n this[i] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; i++) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; i++) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"base64-js\":19,\"ieee754\":23,\"isarray\":21}],21:[function(require,module,exports){\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n},{}],22:[function(require,module,exports){\n(function (process,global){\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"_process\":24}],23:[function(require,module,exports){\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n},{}],24:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],25:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],26:[function(require,module,exports){\n(function (Buffer){\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.utf8, global.axios, global.base64, global.Promise);\n global.github = mod.exports;\n }\n})(this, function (module, Utf8, axios, Base64, Promise) {\n /*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += /\\?/.test(url) ? '&' : '?';\n\n if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for (var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if (options.token || options.username && options.password) {\n config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config).then(function (response) {\n cb(null, response.data || true, response);\n }, function (response) {\n if (response.status === 304) {\n cb(null, response.data || true, response);\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '').split(',').filter(function (link) {\n return (/rel=\"next\"/.test(link)\n );\n }).map(function (link) {\n return (/<(.*)>/.exec(link) || [])[1];\n }).pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [{\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [parent],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(function () {\n that.contributors(cb, retry);\n }, retry);\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function (owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function (owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function (owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function (options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function (id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function (id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function (id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function (options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function (option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function () {\n this.getRateLimit = function (cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function () {\n return new Github.RateLimit();\n };\n\n module.exports = Github;\n});\n\n}).call(this,require(\"buffer\").Buffer)\n\n},{\"axios\":1,\"base-64\":18,\"buffer\":20,\"es6-promise\":22,\"utf8\":25}]},{},[26])(26)\n});\n\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar transformData = require('./../helpers/transformData');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar btoa = window.btoa || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(resolve, reject, config) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onload = function handleLoad() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;\n var response = {\n data: transformData(\n responseData,\n responseHeaders,\n config.transformResponse\n ),\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n // Resolve or reject the Promise based on the status\n ((response.status >= 200 && response.status < 300) ||\n (!('status' in request) && response.responseText) ?\n resolve :\n reject)(response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new Error('Network Error'));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n if (request.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n if (utils.isArrayBuffer(requestData)) {\n requestData = new DataView(requestData);\n }\n\n // Send the request\n request.send(requestData);\n};\n","'use strict';\n\nvar defaults = require('./defaults');\nvar utils = require('./utils');\nvar dispatchRequest = require('./core/dispatchRequest');\nvar InterceptorManager = require('./core/InterceptorManager');\nvar isAbsoluteURL = require('./helpers/isAbsoluteURL');\nvar combineURLs = require('./helpers/combineURLs');\nvar bind = require('./helpers/bind');\nvar transformData = require('./helpers/transformData');\n\nfunction Axios(defaultConfig) {\n this.defaults = utils.merge({}, defaultConfig);\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Don't allow overriding defaults.withCredentials\n config.withCredentials = config.withCredentials || this.defaults.withCredentials;\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nvar defaultInstance = new Axios(defaults);\nvar axios = module.exports = bind(Axios.prototype.request, defaultInstance);\n\naxios.create = function create(defaultConfig) {\n return new Axios(defaultConfig);\n};\n\n// Expose defaults\naxios.defaults = defaultInstance.defaults;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose interceptors\naxios.interceptors = defaultInstance.interceptors;\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n axios[method] = bind(Axios.prototype[method], defaultInstance);\n});\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\n/**\n * Dispatch a request to the server using whichever adapter\n * is supported by the current environment.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n return new Promise(function executor(resolve, reject) {\n try {\n var adapter;\n\n if (typeof config.adapter === 'function') {\n // For custom adapter support\n adapter = config.adapter;\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n\n if (typeof adapter === 'function') {\n adapter(resolve, reject, config);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n","'use strict';\n\nvar utils = require('./utils');\n\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nmodule.exports = {\n transformRequest: [function transformResponseJSON(data, headers) {\n if (utils.isFormData(data)) {\n return data;\n }\n if (utils.isArrayBuffer(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) {\n // Set application/json if no Content-Type has been specified\n if (!utils.isUndefined(headers)) {\n utils.forEach(headers, function processContentTypeHeader(val, key) {\n if (key.toLowerCase() === 'content-type') {\n headers['Content-Type'] = val;\n }\n });\n\n if (utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = 'application/json;charset=utf-8';\n }\n }\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponseJSON(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n data = data.replace(PROTECTION_PREFIX, '');\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n },\n patch: utils.merge(DEFAULT_CONTENT_TYPE),\n post: utils.merge(DEFAULT_CONTENT_TYPE),\n put: utils.merge(DEFAULT_CONTENT_TYPE)\n },\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN'\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\nInvalidCharacterError.prototype = new Error;\nInvalidCharacterError.prototype.code = 5;\nInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n trim: trim\n};\n","/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar d;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '0.1.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","'use strict'\n\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nfunction init () {\n var i\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n var len = code.length\n\n for (i = 0; i < len; i++) {\n lookup[i] = code[i]\n }\n\n for (i = 0; i < len; ++i) {\n revLookup[code.charCodeAt(i)] = i\n }\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\ninit()\n\nfunction toByteArray (b64) {\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp & 0xFF0000) >> 16\n arr[L++] = (tmp & 0xFF00) >> 8\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\nBuffer.poolSize = 8192 // not used by this implementation\n\nvar rootParent = {}\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.foo = function () { return 42 }\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\nfunction Buffer (arg) {\n if (!(this instanceof Buffer)) {\n // Avoid going through an ArgumentsAdaptorTrampoline in the common case.\n if (arguments.length > 1) return new Buffer(arg, arguments[1])\n return new Buffer(arg)\n }\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n this.length = 0\n this.parent = undefined\n }\n\n // Common case.\n if (typeof arg === 'number') {\n return fromNumber(this, arg)\n }\n\n // Slightly less common case.\n if (typeof arg === 'string') {\n return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')\n }\n\n // Unusual.\n return fromObject(this, arg)\n}\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction fromNumber (that, length) {\n that = allocate(that, length < 0 ? 0 : checked(length) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < length; i++) {\n that[i] = 0\n }\n }\n return that\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'\n\n // Assumption: byteLength() return value is always < kMaxLength.\n var length = byteLength(string, encoding) | 0\n that = allocate(that, length)\n\n that.write(string, encoding)\n return that\n}\n\nfunction fromObject (that, object) {\n if (Buffer.isBuffer(object)) return fromBuffer(that, object)\n\n if (isArray(object)) return fromArray(that, object)\n\n if (object == null) {\n throw new TypeError('must start with number, buffer, array or string')\n }\n\n if (typeof ArrayBuffer !== 'undefined') {\n if (object.buffer instanceof ArrayBuffer) {\n return fromTypedArray(that, object)\n }\n if (object instanceof ArrayBuffer) {\n return fromArrayBuffer(that, object)\n }\n }\n\n if (object.length) return fromArrayLike(that, object)\n\n return fromJsonObject(that, object)\n}\n\nfunction fromBuffer (that, buffer) {\n var length = checked(buffer.length) | 0\n that = allocate(that, length)\n buffer.copy(that, 0, 0, length)\n return that\n}\n\nfunction fromArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Duplicate of fromArray() to keep fromArray() monomorphic.\nfunction fromTypedArray (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n // Truncating the elements is probably not what people expect from typed\n // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior\n // of the old Buffer constructor.\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(array)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromTypedArray(that, new Uint8Array(array))\n }\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = checked(array.length) | 0\n that = allocate(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\n// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.\n// Returns a zero-length buffer for inputs that don't conform to the spec.\nfunction fromJsonObject (that, object) {\n var array\n var length = 0\n\n if (object.type === 'Buffer' && isArray(object.data)) {\n array = object.data\n length = checked(array.length) | 0\n }\n that = allocate(that, length)\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n} else {\n // pre-set for values that may exist in the future\n Buffer.prototype.length = undefined\n Buffer.prototype.parent = undefined\n}\n\nfunction allocate (that, length) {\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that.length = length\n }\n\n var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1\n if (fromPool) that.parent = rootParent\n\n return that\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (subject, encoding) {\n if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)\n\n var buf = new Buffer(subject, encoding)\n delete buf.parent\n return buf\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n var i = 0\n var len = Math.min(x, y)\n while (i < len) {\n if (a[i] !== b[i]) break\n\n ++i\n }\n\n if (i !== len) {\n x = a[i]\n y = b[i]\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'raw':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')\n\n if (list.length === 0) {\n return new Buffer(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; i++) {\n length += list[i].length\n }\n }\n\n var buf = new Buffer(length)\n var pos = 0\n for (i = 0; i < list.length; i++) {\n var item = list[i]\n item.copy(buf, pos)\n pos += item.length\n }\n return buf\n}\n\nfunction byteLength (string, encoding) {\n if (typeof string !== 'string') string = '' + string\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'binary':\n // Deprecated\n case 'raw':\n case 'raws':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n start = start | 0\n end = end === undefined || end === Infinity ? this.length : end | 0\n\n if (!encoding) encoding = 'utf8'\n if (start < 0) start = 0\n if (end > this.length) end = this.length\n if (end <= start) return ''\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'binary':\n return binarySlice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return 0\n return Buffer.compare(this, b)\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset) {\n if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff\n else if (byteOffset < -0x80000000) byteOffset = -0x80000000\n byteOffset >>= 0\n\n if (this.length === 0) return -1\n if (byteOffset >= this.length) return -1\n\n // Negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)\n\n if (typeof val === 'string') {\n if (val.length === 0) return -1 // special case: looking for empty string always fails\n return String.prototype.indexOf.call(this, val, byteOffset)\n }\n if (Buffer.isBuffer(val)) {\n return arrayIndexOf(this, val, byteOffset)\n }\n if (typeof val === 'number') {\n if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {\n return Uint8Array.prototype.indexOf.call(this, val, byteOffset)\n }\n return arrayIndexOf(this, [ val ], byteOffset)\n }\n\n function arrayIndexOf (arr, val, byteOffset) {\n var foundIndex = -1\n for (var i = 0; byteOffset + i < arr.length; i++) {\n if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex\n } else {\n foundIndex = -1\n }\n }\n return -1\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new Error('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; i++) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) throw new Error('Invalid hex string')\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction binaryWrite (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n var swap = encoding\n encoding = offset\n offset = length | 0\n length = swap\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'binary':\n return binaryWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction binarySlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; i++) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; i++) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; i++) {\n newBuf[i] = this[i + start]\n }\n }\n\n if (newBuf.length) newBuf.parent = this.parent || this\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('value is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = value < 0 ? 1 : 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('index out of range')\n if (offset < 0) throw new RangeError('index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; i--) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; i++) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// fill(value, start=0, end=buffer.length)\nBuffer.prototype.fill = function fill (value, start, end) {\n if (!value) value = 0\n if (!start) start = 0\n if (!end) end = this.length\n\n if (end < start) throw new RangeError('end < start')\n\n // Fill 0 bytes; we're done\n if (end === start) return\n if (this.length === 0) return\n\n if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')\n if (end < 0 || end > this.length) throw new RangeError('end out of bounds')\n\n var i\n if (typeof value === 'number') {\n for (i = start; i < end; i++) {\n this[i] = value\n }\n } else {\n var bytes = utf8ToBytes(value.toString())\n var len = bytes.length\n for (i = start; i < end; i++) {\n this[i] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; i++) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; i++) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; i++) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/utf8js v2.0.0 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tvar byte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.0.0',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n","/*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n'use strict';\n\nvar Utf8 = require('utf8');\nvar axios = require('axios');\nvar Base64 = require('base-64');\nvar Promise = require('es6-promise');\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += ((/\\?/).test(url) ? '&' : '?');\n\n if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for(var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') +\n (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if ((options.token) || (options.username && options.password)) {\n config.headers.Authorization = options.token ?\n 'token ' + options.token :\n 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config)\n .then(function (response) {\n cb(\n null,\n response.data || true,\n response\n );\n }, function (response) {\n if (response.status === 304) {\n cb(\n null,\n response.data || true,\n response\n );\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '')\n .split(',')\n .filter(function(link) {\n return /rel=\"next\"/.test(link);\n })\n .map(function(link) {\n return (/<(.*)>/.exec(link) || [])[1];\n })\n .pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''),\n null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [\n {\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }\n ]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [\n parent\n ],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(\n function () {\n that.contributors(cb, retry);\n },\n retry\n );\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''),\n null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function(owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function(owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function(owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function(options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function(id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function(id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function(id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function(options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function(option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function() {\n this.getRateLimit = function(cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function() {\n return new Github.RateLimit();\n };\n\nmodule.exports = Github;\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.js b/dist/github.js deleted file mode 100644 index b5dd38a2..00000000 --- a/dist/github.js +++ /dev/null @@ -1,1136 +0,0 @@ -(function (global, factory) { - if (typeof define === "function" && define.amd) { - define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory); - } else if (typeof exports !== "undefined") { - factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise')); - } else { - var mod = { - exports: {} - }; - factory(mod, global.utf8, global.axios, global.base64, global.Promise); - global.github = mod.exports; - } -})(this, function (module, Utf8, axios, Base64, Promise) { - /*! - * @overview Github.js - * - * @copyright (c) 2013 Michael Aufreiter, Development Seed - * Github.js is freely distributable. - * - * @license Licensed under BSD-3-Clause-Clear - * - * For all details and documentation: - * http://substance.io/michael/github - */ - 'use strict'; - - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; - }; - - function b64encode(string) { - return Base64.encode(Utf8.encode(string)); - } - - if (Promise.polyfill) { - Promise.polyfill(); - } - - // Initial Setup - // ------------- - - function Github(options) { - options = options || {}; - - var API_URL = options.apiUrl || 'https://api.github.com'; - - // HTTP Request Abstraction - // ======= - // - // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec. - - var _request = Github._request = function _request(method, path, data, cb, raw) { - function getURL() { - var url = path.indexOf('//') >= 0 ? path : API_URL + path; - - url += /\?/.test(url) ? '&' : '?'; - - if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) { - for (var param in data) { - if (data.hasOwnProperty(param)) { - url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]); - } - } - } - - return url.replace(/(×tamp=\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : ''); - } - - var config = { - headers: { - Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', - 'Content-Type': 'application/json;charset=UTF-8' - }, - method: method, - data: data ? data : {}, - url: getURL() - }; - - if (options.token || options.username && options.password) { - config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password); - } - - return axios(config).then(function (response) { - cb(null, response.data || true, response); - }, function (response) { - if (response.status === 304) { - cb(null, response.data || true, response); - } else { - cb({ - path: path, - request: response, - error: response.status - }); - } - }); - }; - - var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) { - var results = []; - - (function iterate() { - _request('GET', path, null, function (err, res, xhr) { - if (err) { - return cb(err); - } - - if (!(res instanceof Array)) { - res = [res]; - } - - results.push.apply(results, res); - - var next = (xhr.headers.link || '').split(',').filter(function (link) { - return (/rel="next"/.test(link) - ); - }).map(function (link) { - return (/<(.*)>/.exec(link) || [])[1]; - }).pop(); - - if (!next || singlePage) { - cb(err, results, xhr); - } else { - path = next; - iterate(); - } - }); - })(); - }; - - // User API - // ======= - - Github.User = function () { - this.repos = function (options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - options = options || {}; - - var url = '/user/repos'; - var params = []; - - params.push('type=' + encodeURIComponent(options.type || 'all')); - params.push('sort=' + encodeURIComponent(options.sort || 'updated')); - params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore - - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } - - url += '?' + params.join('&'); - - _requestAllPages(url, !!options.page, cb); - }; - - // List user organizations - // ------- - - this.orgs = function (cb) { - _request('GET', '/user/orgs', null, cb); - }; - - // List authenticated user's gists - // ------- - - this.gists = function (cb) { - _request('GET', '/gists', null, cb); - }; - - // List authenticated user's unread notifications - // ------- - - this.notifications = function (options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - options = options || {}; - var url = '/notifications'; - var params = []; - - if (options.all) { - params.push('all=true'); - } - - if (options.participating) { - params.push('participating=true'); - } - - if (options.since) { - var since = options.since; - - if (since.constructor === Date) { - since = since.toISOString(); - } - - params.push('since=' + encodeURIComponent(since)); - } - - if (options.before) { - var before = options.before; - - if (before.constructor === Date) { - before = before.toISOString(); - } - - params.push('before=' + encodeURIComponent(before)); - } - - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } - - if (params.length > 0) { - url += '?' + params.join('&'); - } - - _request('GET', url, null, cb); - }; - - // Show user information - // ------- - - this.show = function (username, cb) { - var command = username ? '/users/' + username : '/user'; - - _request('GET', command, null, cb); - }; - - // List user repositories - // ------- - - this.userRepos = function (username, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - var url = '/users/' + username + '/repos'; - var params = []; - - params.push('type=' + encodeURIComponent(options.type || 'all')); - params.push('sort=' + encodeURIComponent(options.sort || 'updated')); - params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore - - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } - - url += '?' + params.join('&'); - - _requestAllPages(url, !!options.page, cb); - }; - - // List user starred repositories - // ------- - - this.userStarred = function (username, cb) { - // Github does not always honor the 1000 limit so we want to iterate over the data set. - var request = '/users/' + username + '/starred?type=all&per_page=100'; - _requestAllPages(request, false, cb); - }; - - // List a user's gists - // ------- - - this.userGists = function (username, cb) { - _request('GET', '/users/' + username + '/gists', null, cb); - }; - - // List organization repositories - // ------- - - this.orgRepos = function (orgname, cb) { - // Github does not always honor the 1000 limit so we want to iterate over the data set. - var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc'; - _requestAllPages(request, false, cb); - }; - - // Follow user - // ------- - - this.follow = function (username, cb) { - _request('PUT', '/user/following/' + username, null, cb); - }; - - // Unfollow user - // ------- - - this.unfollow = function (username, cb) { - _request('DELETE', '/user/following/' + username, null, cb); - }; - - // Create a repo - // ------- - this.createRepo = function (options, cb) { - _request('POST', '/user/repos', options, cb); - }; - }; - - // Repository API - // ======= - - Github.Repository = function (options) { - var repo = options.name; - var user = options.user; - var fullname = options.fullname; - - var that = this; - var repoPath; - - if (fullname) { - repoPath = '/repos/' + fullname; - } else { - repoPath = '/repos/' + user + '/' + repo; - } - - var currentTree = { - branch: null, - sha: null - }; - - // Uses the cache if branch has not been changed - // ------- - - function updateTree(branch, cb) { - if (branch === currentTree.branch && currentTree.sha) { - return cb(null, currentTree.sha); - } - - that.getRef('heads/' + branch, function (err, sha) { - currentTree.branch = branch; - currentTree.sha = sha; - cb(err, sha); - }); - } - - // Get a particular reference - // ------- - - this.getRef = function (ref, cb) { - _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.object.sha, xhr); - }); - }; - - // Create a new reference - // -------- - // - // { - // "ref": "refs/heads/my-new-branch-name", - // "sha": "827efc6d56897b048c772eb4087f854f46256132" - // } - - this.createRef = function (options, cb) { - _request('POST', repoPath + '/git/refs', options, cb); - }; - - // Delete a reference - // -------- - // - // Repo.deleteRef('heads/gh-pages') - // repo.deleteRef('tags/v1.0') - - this.deleteRef = function (ref, cb) { - _request('DELETE', repoPath + '/git/refs/' + ref, options, cb); - }; - - // Delete a repo - // -------- - - this.deleteRepo = function (cb) { - _request('DELETE', repoPath, options, cb); - }; - - // List all tags of a repository - // ------- - - this.listTags = function (cb) { - _request('GET', repoPath + '/tags', null, cb); - }; - - // List all pull requests of a respository - // ------- - - this.listPulls = function (options, cb) { - options = options || {}; - var url = repoPath + '/pulls'; - var params = []; - - if (typeof options === 'string') { - // Backward compatibility - params.push('state=' + options); - } else { - if (options.state) { - params.push('state=' + encodeURIComponent(options.state)); - } - - if (options.head) { - params.push('head=' + encodeURIComponent(options.head)); - } - - if (options.base) { - params.push('base=' + encodeURIComponent(options.base)); - } - - if (options.sort) { - params.push('sort=' + encodeURIComponent(options.sort)); - } - - if (options.direction) { - params.push('direction=' + encodeURIComponent(options.direction)); - } - - if (options.page) { - params.push('page=' + options.page); - } - - if (options.per_page) { - params.push('per_page=' + options.per_page); - } - } - - if (params.length > 0) { - url += '?' + params.join('&'); - } - - _request('GET', url, null, cb); - }; - - // Gets details for a specific pull request - // ------- - - this.getPull = function (number, cb) { - _request('GET', repoPath + '/pulls/' + number, null, cb); - }; - - // Retrieve the changes made between base and head - // ------- - - this.compare = function (base, head, cb) { - _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb); - }; - - // List all branches of a repository - // ------- - - this.listBranches = function (cb) { - _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) { - if (err) { - return cb(err); - } - - heads = heads.map(function (head) { - return head.ref.replace(/^refs\/heads\//, ''); - }); - - cb(null, heads, xhr); - }); - }; - - // Retrieve the contents of a blob - // ------- - - this.getBlob = function (sha, cb) { - _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw'); - }; - - // For a given file path, get the corresponding sha (blob for files, tree for dirs) - // ------- - - this.getCommit = function (branch, sha, cb) { - _request('GET', repoPath + '/git/commits/' + sha, null, cb); - }; - - // For a given file path, get the corresponding sha (blob for files, tree for dirs) - // ------- - - this.getSha = function (branch, path, cb) { - if (!path || path === '') { - return that.getRef('heads/' + branch, cb); - } - - _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) { - if (err) { - return cb(err); - } - - cb(null, pathContent.sha, xhr); - }); - }; - - // Get the statuses for a particular SHA - // ------- - - this.getStatuses = function (sha, cb) { - _request('GET', repoPath + '/statuses/' + sha, null, cb); - }; - - // Retrieve the tree a commit points to - // ------- - - this.getTree = function (tree, cb) { - _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.tree, xhr); - }); - }; - - // Post a new blob object, getting a blob SHA back - // ------- - - this.postBlob = function (content, cb) { - if (typeof content === 'string') { - content = { - content: Utf8.encode(content), - encoding: 'utf-8' - }; - } else { - if (typeof Buffer !== 'undefined' && content instanceof Buffer) { - // in NodeJS - content = { - content: content.toString('base64'), - encoding: 'base64' - }; - } else if (typeof Blob !== 'undefined' && content instanceof Blob) { - content = { - content: b64encode(content), - encoding: 'base64' - }; - } else { - throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)'); - } - } - - _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.sha, xhr); - }); - }; - - // Update an existing tree adding a new blob object getting a tree SHA back - // ------- - - this.updateTree = function (baseTree, path, blob, cb) { - var data = { - base_tree: baseTree, - tree: [{ - path: path, - mode: '100644', - type: 'blob', - sha: blob - }] - }; - - _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.sha, xhr); - }); - }; - - // Post a new tree object having a file path pointer replaced - // with a new blob SHA getting a tree SHA back - // ------- - - this.postTree = function (tree, cb) { - _request('POST', repoPath + '/git/trees', { - tree: tree - }, function (err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.sha, xhr); - }); - }; - - // Create a new commit object with the current commit SHA as the parent - // and the new tree SHA, getting a commit SHA back - // ------- - - this.commit = function (parent, tree, message, cb) { - var user = new Github.User(); - - user.show(null, function (err, userData) { - if (err) { - return cb(err); - } - - var data = { - message: message, - author: { - name: options.user, - email: userData.email - }, - parents: [parent], - tree: tree - }; - - _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) { - if (err) { - return cb(err); - } - - currentTree.sha = res.sha; // Update latest commit - - cb(null, res.sha, xhr); - }); - }); - }; - - // Update the reference of your head to point to the new commit SHA - // ------- - - this.updateHead = function (head, commit, cb) { - _request('PATCH', repoPath + '/git/refs/heads/' + head, { - sha: commit - }, cb); - }; - - // Show repository information - // ------- - - this.show = function (cb) { - _request('GET', repoPath, null, cb); - }; - - // Show repository contributors - // ------- - - this.contributors = function (cb, retry) { - retry = retry || 1000; - var that = this; - - _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) { - if (err) { - return cb(err); - } - - if (xhr.status === 202) { - setTimeout(function () { - that.contributors(cb, retry); - }, retry); - } else { - cb(err, data, xhr); - } - }); - }; - - // Get contents - // -------- - - this.contents = function (ref, path, cb) { - path = encodeURI(path); - _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), { - ref: ref - }, cb); - }; - - // Fork repository - // ------- - - this.fork = function (cb) { - _request('POST', repoPath + '/forks', null, cb); - }; - - // List forks - // -------- - - this.listForks = function (cb) { - _request('GET', repoPath + '/forks', null, cb); - }; - - // Branch repository - // -------- - - this.branch = function (oldBranch, newBranch, cb) { - if (arguments.length === 2 && typeof arguments[1] === 'function') { - cb = newBranch; - newBranch = oldBranch; - oldBranch = 'master'; - } - - this.getRef('heads/' + oldBranch, function (err, ref) { - if (err && cb) { - return cb(err); - } - - that.createRef({ - ref: 'refs/heads/' + newBranch, - sha: ref - }, cb); - }); - }; - - // Create pull request - // -------- - - this.createPullRequest = function (options, cb) { - _request('POST', repoPath + '/pulls', options, cb); - }; - - // List hooks - // -------- - - this.listHooks = function (cb) { - _request('GET', repoPath + '/hooks', null, cb); - }; - - // Get a hook - // -------- - - this.getHook = function (id, cb) { - _request('GET', repoPath + '/hooks/' + id, null, cb); - }; - - // Create a hook - // -------- - - this.createHook = function (options, cb) { - _request('POST', repoPath + '/hooks', options, cb); - }; - - // Edit a hook - // -------- - - this.editHook = function (id, options, cb) { - _request('PATCH', repoPath + '/hooks/' + id, options, cb); - }; - - // Delete a hook - // -------- - - this.deleteHook = function (id, cb) { - _request('DELETE', repoPath + '/hooks/' + id, null, cb); - }; - - // Read file at given path - // ------- - - this.read = function (branch, path, cb) { - _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true); - }; - - // Remove a file - // ------- - - this.remove = function (branch, path, cb) { - that.getSha(branch, path, function (err, sha) { - if (err) { - return cb(err); - } - - _request('DELETE', repoPath + '/contents/' + path, { - message: path + ' is removed', - sha: sha, - branch: branch - }, cb); - }); - }; - - // Alias for repo.remove for backwards comapt. - // ------- - this.delete = this.remove; - - // Move a file to a new location - // ------- - - this.move = function (branch, path, newPath, cb) { - updateTree(branch, function (err, latestCommit) { - that.getTree(latestCommit + '?recursive=true', function (err, tree) { - // Update Tree - tree.forEach(function (ref) { - if (ref.path === path) { - ref.path = newPath; - } - - if (ref.type === 'tree') { - delete ref.sha; - } - }); - - that.postTree(tree, function (err, rootTree) { - that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) { - that.updateHead(branch, commit, cb); - }); - }); - }); - }); - }; - - // Write file contents to a given branch and path - // ------- - - this.write = function (branch, path, content, message, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - that.getSha(branch, encodeURI(path), function (err, sha) { - var writeOptions = { - message: message, - content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content, - branch: branch, - committer: options && options.committer ? options.committer : undefined, - author: options && options.author ? options.author : undefined - }; - - // If no error, we set the sha to overwrite an existing file - if (!(err && err.error !== 404)) { - writeOptions.sha = sha; - } - - _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb); - }); - }; - - // List commits on a repository. Takes an object of optional parameters: - // sha: SHA or branch to start listing commits from - // path: Only commits containing this file path will be returned - // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address - // since: ISO 8601 date - only commits after this date will be returned - // until: ISO 8601 date - only commits before this date will be returned - // ------- - - this.getCommits = function (options, cb) { - options = options || {}; - var url = repoPath + '/commits'; - var params = []; - - if (options.sha) { - params.push('sha=' + encodeURIComponent(options.sha)); - } - - if (options.path) { - params.push('path=' + encodeURIComponent(options.path)); - } - - if (options.author) { - params.push('author=' + encodeURIComponent(options.author)); - } - - if (options.since) { - var since = options.since; - - if (since.constructor === Date) { - since = since.toISOString(); - } - - params.push('since=' + encodeURIComponent(since)); - } - - if (options.until) { - var until = options.until; - - if (until.constructor === Date) { - until = until.toISOString(); - } - - params.push('until=' + encodeURIComponent(until)); - } - - if (options.page) { - params.push('page=' + options.page); - } - - if (options.perpage) { - params.push('per_page=' + options.perpage); - } - - if (params.length > 0) { - url += '?' + params.join('&'); - } - - _request('GET', url, null, cb); - }; - - // Check if a repository is starred. - // -------- - - this.isStarred = function (owner, repository, cb) { - _request('GET', '/user/starred/' + owner + '/' + repository, null, cb); - }; - - // Star a repository. - // -------- - - this.star = function (owner, repository, cb) { - _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); - }; - - // Unstar a repository. - // -------- - - this.unstar = function (owner, repository, cb) { - _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); - }; - - // Create a new release - // -------- - - this.createRelease = function (options, cb) { - _request('POST', repoPath + '/releases', options, cb); - }; - - // Edit a release - // -------- - - this.editRelease = function (id, options, cb) { - _request('PATCH', repoPath + '/releases/' + id, options, cb); - }; - - // Get a single release - // -------- - - this.getRelease = function (id, cb) { - _request('GET', repoPath + '/releases/' + id, null, cb); - }; - - // Remove a release - // -------- - - this.deleteRelease = function (id, cb) { - _request('DELETE', repoPath + '/releases/' + id, null, cb); - }; - }; - - // Gists API - // ======= - - Github.Gist = function (options) { - var id = options.id; - var gistPath = '/gists/' + id; - - // Read the gist - // -------- - - this.read = function (cb) { - _request('GET', gistPath, null, cb); - }; - - // Create the gist - // -------- - // { - // "description": "the description for this gist", - // "public": true, - // "files": { - // "file1.txt": { - // "content": "String file contents" - // } - // } - // } - - this.create = function (options, cb) { - _request('POST', '/gists', options, cb); - }; - - // Delete the gist - // -------- - - this.delete = function (cb) { - _request('DELETE', gistPath, null, cb); - }; - - // Fork a gist - // -------- - - this.fork = function (cb) { - _request('POST', gistPath + '/fork', null, cb); - }; - - // Update a gist with the new stuff - // -------- - - this.update = function (options, cb) { - _request('PATCH', gistPath, options, cb); - }; - - // Star a gist - // -------- - - this.star = function (cb) { - _request('PUT', gistPath + '/star', null, cb); - }; - - // Untar a gist - // -------- - - this.unstar = function (cb) { - _request('DELETE', gistPath + '/star', null, cb); - }; - - // Check if a gist is starred - // -------- - - this.isStarred = function (cb) { - _request('GET', gistPath + '/star', null, cb); - }; - }; - - // Issues API - // ========== - - Github.Issue = function (options) { - var path = '/repos/' + options.user + '/' + options.repo + '/issues'; - - this.create = function (options, cb) { - _request('POST', path, options, cb); - }; - - this.list = function (options, cb) { - var query = []; - - Object.keys(options).forEach(function (option) { - query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option])); - }); - - _requestAllPages(path + '?' + query.join('&'), !!options.page, cb); - }; - - this.comment = function (issue, comment, cb) { - _request('POST', issue.comments_url, { - body: comment - }, cb); - }; - - this.edit = function (issue, options, cb) { - _request('PATCH', path + '/' + issue, options, cb); - }; - - this.get = function (issue, cb) { - _request('GET', path + '/' + issue, null, cb); - }; - }; - - // Search API - // ========== - - Github.Search = function (options) { - var path = '/search/'; - var query = '?q=' + options.query; - - this.repositories = function (options, cb) { - _request('GET', path + 'repositories' + query, options, cb); - }; - - this.code = function (options, cb) { - _request('GET', path + 'code' + query, options, cb); - }; - - this.issues = function (options, cb) { - _request('GET', path + 'issues' + query, options, cb); - }; - - this.users = function (options, cb) { - _request('GET', path + 'users' + query, options, cb); - }; - }; - - // Rate Limit API - // ========== - - Github.RateLimit = function () { - this.getRateLimit = function (cb) { - _request('GET', '/rate_limit', null, cb); - }; - }; - - return Github; - }; - - // Top Level API - // ------- - - Github.getIssues = function (user, repo) { - return new Github.Issue({ - user: user, - repo: repo - }); - }; - - Github.getRepo = function (user, repo) { - if (!repo) { - return new Github.Repository({ - fullname: user - }); - } else { - return new Github.Repository({ - user: user, - name: repo - }); - } - }; - - Github.getUser = function () { - return new Github.User(); - }; - - Github.getGist = function (id) { - return new Github.Gist({ - id: id - }); - }; - - Github.getSearch = function (query) { - return new Github.Search({ - query: query - }); - }; - - Github.getRateLimit = function () { - return new Github.RateLimit(); - }; - - module.exports = Github; -}); -//# sourceMappingURL=github.js.map diff --git a/dist/github.js.map b/dist/github.js.map deleted file mode 100644 index eb15fe9e..00000000 --- a/dist/github.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":[],"mappings":"","sources":["github.js"],"sourcesContent":["(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.utf8, global.axios, global.base64, global.Promise);\n global.github = mod.exports;\n }\n})(this, function (module, Utf8, axios, Base64, Promise) {\n /*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += /\\?/.test(url) ? '&' : '?';\n\n if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for (var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if (options.token || options.username && options.password) {\n config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config).then(function (response) {\n cb(null, response.data || true, response);\n }, function (response) {\n if (response.status === 304) {\n cb(null, response.data || true, response);\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '').split(',').filter(function (link) {\n return (/rel=\"next\"/.test(link)\n );\n }).map(function (link) {\n return (/<(.*)>/.exec(link) || [])[1];\n }).pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [{\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [parent],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(function () {\n that.contributors(cb, retry);\n }, retry);\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function (owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function (owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function (owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function (options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function (id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function (id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function (id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function (options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function (option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function () {\n this.getRateLimit = function (cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function () {\n return new Github.RateLimit();\n };\n\n module.exports = Github;\n});"],"file":"github.js","sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/github.min.js b/dist/github.min.js deleted file mode 100644 index da59303e..00000000 --- a/dist/github.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){if("function"==typeof define&&define.amd)define(["module","utf8","axios","base-64","es6-promise"],t);else if("undefined"!=typeof exports)t(module,require("utf8"),require("axios"),require("base-64"),require("es6-promise"));else{var n={exports:{}};t(n,e.utf8,e.axios,e.base64,e.Promise),e.github=n.exports}}(this,function(e,t,n,o,s){"use strict";function i(e){return o.encode(t.encode(e))}function u(e){e=e||{};var o=e.apiUrl||"https://api.github.com",s=u._request=function(t,s,u,a,c){function f(){var e=s.indexOf("//")>=0?s:o+s;if(e+=/\?/.test(e)?"&":"?",u&&"object"===("undefined"==typeof u?"undefined":r(u))&&["GET","HEAD","DELETE"].indexOf(t)>-1)for(var n in u)u.hasOwnProperty(n)&&(e+="&"+encodeURIComponent(n)+"="+encodeURIComponent(u[n]));return e.replace(/(×tamp=\d+)/,"")+("undefined"!=typeof window?"×tamp="+(new Date).getTime():"")}var l={headers:{Accept:c?"application/vnd.github.v3.raw+json":"application/vnd.github.v3+json","Content-Type":"application/json;charset=UTF-8"},method:t,data:u?u:{},url:f()};return(e.token||e.username&&e.password)&&(l.headers.Authorization=e.token?"token "+e.token:"Basic "+i(e.username+":"+e.password)),n(l).then(function(e){a(null,e.data||!0,e)},function(e){304===e.status?a(null,e.data||!0,e):a({path:s,request:e,error:e.status})})},a=u._requestAllPages=function(e,t,n){var o=[];!function i(){s("GET",e,null,function(s,u,r){if(s)return n(s);u instanceof Array||(u=[u]),o.push.apply(o,u);var a=(r.headers.link||"").split(",").filter(function(e){return/rel="next"/.test(e)}).map(function(e){return(/<(.*)>/.exec(e)||[])[1]}).pop();!a||t?n(s,o,r):(e=a,i())})}()};return u.User=function(){this.repos=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/user/repos",o=[];o.push("type="+encodeURIComponent(e.type||"all")),o.push("sort="+encodeURIComponent(e.sort||"updated")),o.push("per_page="+encodeURIComponent(e.per_page||"100")),e.page&&o.push("page="+encodeURIComponent(e.page)),n+="?"+o.join("&"),a(n,!!e.page,t)},this.orgs=function(e){s("GET","/user/orgs",null,e)},this.gists=function(e){s("GET","/gists",null,e)},this.notifications=function(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};var n="/notifications",o=[];if(e.all&&o.push("all=true"),e.participating&&o.push("participating=true"),e.since){var i=e.since;i.constructor===Date&&(i=i.toISOString()),o.push("since="+encodeURIComponent(i))}if(e.before){var u=e.before;u.constructor===Date&&(u=u.toISOString()),o.push("before="+encodeURIComponent(u))}e.page&&o.push("page="+encodeURIComponent(e.page)),o.length>0&&(n+="?"+o.join("&")),s("GET",n,null,t)},this.show=function(e,t){var n=e?"/users/"+e:"/user";s("GET",n,null,t)},this.userRepos=function(e,t,n){"function"==typeof t&&(n=t,t={});var o="/users/"+e+"/repos",s=[];s.push("type="+encodeURIComponent(t.type||"all")),s.push("sort="+encodeURIComponent(t.sort||"updated")),s.push("per_page="+encodeURIComponent(t.per_page||"100")),t.page&&s.push("page="+encodeURIComponent(t.page)),o+="?"+s.join("&"),a(o,!!t.page,n)},this.userStarred=function(e,t){var n="/users/"+e+"/starred?type=all&per_page=100";a(n,!1,t)},this.userGists=function(e,t){s("GET","/users/"+e+"/gists",null,t)},this.orgRepos=function(e,t){var n="/orgs/"+e+"/repos?type=all&&page_num=100&sort=updated&direction=desc";a(n,!1,t)},this.follow=function(e,t){s("PUT","/user/following/"+e,null,t)},this.unfollow=function(e,t){s("DELETE","/user/following/"+e,null,t)},this.createRepo=function(e,t){s("POST","/user/repos",e,t)}},u.Repository=function(e){function n(e,t){return e===l.branch&&l.sha?t(null,l.sha):void f.getRef("heads/"+e,function(n,o){l.branch=e,l.sha=o,t(n,o)})}var o,r=e.name,a=e.user,c=e.fullname,f=this;o=c?"/repos/"+c:"/repos/"+a+"/"+r;var l={branch:null,sha:null};this.getRef=function(e,t){s("GET",o+"/git/refs/"+e,null,function(e,n,o){return e?t(e):void t(null,n.object.sha,o)})},this.createRef=function(e,t){s("POST",o+"/git/refs",e,t)},this.deleteRef=function(t,n){s("DELETE",o+"/git/refs/"+t,e,n)},this.deleteRepo=function(t){s("DELETE",o,e,t)},this.listTags=function(e){s("GET",o+"/tags",null,e)},this.listPulls=function(e,t){e=e||{};var n=o+"/pulls",i=[];"string"==typeof e?i.push("state="+e):(e.state&&i.push("state="+encodeURIComponent(e.state)),e.head&&i.push("head="+encodeURIComponent(e.head)),e.base&&i.push("base="+encodeURIComponent(e.base)),e.sort&&i.push("sort="+encodeURIComponent(e.sort)),e.direction&&i.push("direction="+encodeURIComponent(e.direction)),e.page&&i.push("page="+e.page),e.per_page&&i.push("per_page="+e.per_page)),i.length>0&&(n+="?"+i.join("&")),s("GET",n,null,t)},this.getPull=function(e,t){s("GET",o+"/pulls/"+e,null,t)},this.compare=function(e,t,n){s("GET",o+"/compare/"+e+"..."+t,null,n)},this.listBranches=function(e){s("GET",o+"/git/refs/heads",null,function(t,n,o){return t?e(t):(n=n.map(function(e){return e.ref.replace(/^refs\/heads\//,"")}),void e(null,n,o))})},this.getBlob=function(e,t){s("GET",o+"/git/blobs/"+e,null,t,"raw")},this.getCommit=function(e,t,n){s("GET",o+"/git/commits/"+t,null,n)},this.getSha=function(e,t,n){return t&&""!==t?void s("GET",o+"/contents/"+t+(e?"?ref="+e:""),null,function(e,t,o){return e?n(e):void n(null,t.sha,o)}):f.getRef("heads/"+e,n)},this.getStatuses=function(e,t){s("GET",o+"/statuses/"+e,null,t)},this.getTree=function(e,t){s("GET",o+"/git/trees/"+e,null,function(e,n,o){return e?t(e):void t(null,n.tree,o)})},this.postBlob=function(e,n){if("string"==typeof e)e={content:t.encode(e),encoding:"utf-8"};else if("undefined"!=typeof Buffer&&e instanceof Buffer)e={content:e.toString("base64"),encoding:"base64"};else{if(!("undefined"!=typeof Blob&&e instanceof Blob))throw new Error("Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)");e={content:i(e),encoding:"base64"}}s("POST",o+"/git/blobs",e,function(e,t,o){return e?n(e):void n(null,t.sha,o)})},this.updateTree=function(e,t,n,i){var u={base_tree:e,tree:[{path:t,mode:"100644",type:"blob",sha:n}]};s("POST",o+"/git/trees",u,function(e,t,n){return e?i(e):void i(null,t.sha,n)})},this.postTree=function(e,t){s("POST",o+"/git/trees",{tree:e},function(e,n,o){return e?t(e):void t(null,n.sha,o)})},this.commit=function(t,n,i,r){var a=new u.User;a.show(null,function(u,a){if(u)return r(u);var c={message:i,author:{name:e.user,email:a.email},parents:[t],tree:n};s("POST",o+"/git/commits",c,function(e,t,n){return e?r(e):(l.sha=t.sha,void r(null,t.sha,n))})})},this.updateHead=function(e,t,n){s("PATCH",o+"/git/refs/heads/"+e,{sha:t},n)},this.show=function(e){s("GET",o,null,e)},this.contributors=function(e,t){t=t||1e3;var n=this;s("GET",o+"/stats/contributors",null,function(o,s,i){return o?e(o):void(202===i.status?setTimeout(function(){n.contributors(e,t)},t):e(o,s,i))})},this.contents=function(e,t,n){t=encodeURI(t),s("GET",o+"/contents"+(t?"/"+t:""),{ref:e},n)},this.fork=function(e){s("POST",o+"/forks",null,e)},this.listForks=function(e){s("GET",o+"/forks",null,e)},this.branch=function(e,t,n){2===arguments.length&&"function"==typeof arguments[1]&&(n=t,t=e,e="master"),this.getRef("heads/"+e,function(e,o){return e&&n?n(e):void f.createRef({ref:"refs/heads/"+t,sha:o},n)})},this.createPullRequest=function(e,t){s("POST",o+"/pulls",e,t)},this.listHooks=function(e){s("GET",o+"/hooks",null,e)},this.getHook=function(e,t){s("GET",o+"/hooks/"+e,null,t)},this.createHook=function(e,t){s("POST",o+"/hooks",e,t)},this.editHook=function(e,t,n){s("PATCH",o+"/hooks/"+e,t,n)},this.deleteHook=function(e,t){s("DELETE",o+"/hooks/"+e,null,t)},this.read=function(e,t,n){s("GET",o+"/contents/"+encodeURI(t)+(e?"?ref="+e:""),null,n,!0)},this.remove=function(e,t,n){f.getSha(e,t,function(i,u){return i?n(i):void s("DELETE",o+"/contents/"+t,{message:t+" is removed",sha:u,branch:e},n)})},this["delete"]=this.remove,this.move=function(e,t,o,s){n(e,function(n,i){f.getTree(i+"?recursive=true",function(n,u){u.forEach(function(e){e.path===t&&(e.path=o),"tree"===e.type&&delete e.sha}),f.postTree(u,function(n,o){f.commit(i,o,"Deleted "+t,function(t,n){f.updateHead(e,n,s)})})})})},this.write=function(e,t,n,u,r,a){"function"==typeof r&&(a=r,r={}),f.getSha(e,encodeURI(t),function(c,f){var l={message:u,content:"undefined"==typeof r.encode||r.encode?i(n):n,branch:e,committer:r&&r.committer?r.committer:void 0,author:r&&r.author?r.author:void 0};c&&404!==c.error||(l.sha=f),s("PUT",o+"/contents/"+encodeURI(t),l,a)})},this.getCommits=function(e,t){e=e||{};var n=o+"/commits",i=[];if(e.sha&&i.push("sha="+encodeURIComponent(e.sha)),e.path&&i.push("path="+encodeURIComponent(e.path)),e.author&&i.push("author="+encodeURIComponent(e.author)),e.since){var u=e.since;u.constructor===Date&&(u=u.toISOString()),i.push("since="+encodeURIComponent(u))}if(e.until){var r=e.until;r.constructor===Date&&(r=r.toISOString()),i.push("until="+encodeURIComponent(r))}e.page&&i.push("page="+e.page),e.perpage&&i.push("per_page="+e.perpage),i.length>0&&(n+="?"+i.join("&")),s("GET",n,null,t)},this.isStarred=function(e,t,n){s("GET","/user/starred/"+e+"/"+t,null,n)},this.star=function(e,t,n){s("PUT","/user/starred/"+e+"/"+t,null,n)},this.unstar=function(e,t,n){s("DELETE","/user/starred/"+e+"/"+t,null,n)},this.createRelease=function(e,t){s("POST",o+"/releases",e,t)},this.editRelease=function(e,t,n){s("PATCH",o+"/releases/"+e,t,n)},this.getRelease=function(e,t){s("GET",o+"/releases/"+e,null,t)},this.deleteRelease=function(e,t){s("DELETE",o+"/releases/"+e,null,t)}},u.Gist=function(e){var t=e.id,n="/gists/"+t;this.read=function(e){s("GET",n,null,e)},this.create=function(e,t){s("POST","/gists",e,t)},this["delete"]=function(e){s("DELETE",n,null,e)},this.fork=function(e){s("POST",n+"/fork",null,e)},this.update=function(e,t){s("PATCH",n,e,t)},this.star=function(e){s("PUT",n+"/star",null,e)},this.unstar=function(e){s("DELETE",n+"/star",null,e)},this.isStarred=function(e){s("GET",n+"/star",null,e)}},u.Issue=function(e){var t="/repos/"+e.user+"/"+e.repo+"/issues";this.create=function(e,n){s("POST",t,e,n)},this.list=function(e,n){var o=[];Object.keys(e).forEach(function(t){o.push(encodeURIComponent(t)+"="+encodeURIComponent(e[t]))}),a(t+"?"+o.join("&"),!!e.page,n)},this.comment=function(e,t,n){s("POST",e.comments_url,{body:t},n)},this.edit=function(e,n,o){s("PATCH",t+"/"+e,n,o)},this.get=function(e,n){s("GET",t+"/"+e,null,n)}},u.Search=function(e){var t="/search/",n="?q="+e.query;this.repositories=function(e,o){s("GET",t+"repositories"+n,e,o)},this.code=function(e,o){s("GET",t+"code"+n,e,o)},this.issues=function(e,o){s("GET",t+"issues"+n,e,o)},this.users=function(e,o){s("GET",t+"users"+n,e,o)}},u.RateLimit=function(){this.getRateLimit=function(e){s("GET","/rate_limit",null,e)}},u}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};s.polyfill&&s.polyfill(),u.getIssues=function(e,t){return new u.Issue({user:e,repo:t})},u.getRepo=function(e,t){return t?new u.Repository({user:e,name:t}):new u.Repository({fullname:e})},u.getUser=function(){return new u.User},u.getGist=function(e){return new u.Gist({id:e})},u.getSearch=function(e){return new u.Search({query:e})},u.getRateLimit=function(){return new u.RateLimit},e.exports=u}); -//# sourceMappingURL=github.min.js.map diff --git a/dist/github.min.js.map b/dist/github.min.js.map deleted file mode 100644 index 5d426aa9..00000000 --- a/dist/github.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["github.min.js"],"names":["global","factory","define","amd","exports","module","require","mod","utf8","axios","base64","Promise","github","this","Utf8","Base64","b64encode","string","encode","Github","options","API_URL","apiUrl","_request","method","path","data","cb","raw","getURL","url","indexOf","test","_typeof","param","hasOwnProperty","encodeURIComponent","replace","window","Date","getTime","config","headers","Accept","Content-Type","token","username","password","Authorization","then","response","status","request","error","_requestAllPages","singlePage","results","iterate","err","res","xhr","Array","push","apply","next","link","split","filter","map","exec","pop","User","repos","params","type","sort","per_page","page","join","orgs","gists","notifications","all","participating","since","constructor","toISOString","before","length","show","command","userRepos","userStarred","userGists","orgRepos","orgname","follow","unfollow","createRepo","Repository","updateTree","branch","currentTree","sha","that","getRef","repoPath","repo","name","user","fullname","ref","object","createRef","deleteRef","deleteRepo","listTags","listPulls","state","head","base","direction","getPull","number","compare","listBranches","heads","getBlob","getCommit","getSha","pathContent","getStatuses","getTree","tree","postBlob","content","encoding","Buffer","toString","Blob","Error","baseTree","blob","base_tree","mode","postTree","commit","parent","message","userData","author","email","parents","updateHead","contributors","retry","setTimeout","contents","encodeURI","fork","listForks","oldBranch","newBranch","arguments","createPullRequest","listHooks","getHook","id","createHook","editHook","deleteHook","read","remove","move","newPath","latestCommit","forEach","rootTree","write","writeOptions","committer","undefined","getCommits","until","perpage","isStarred","owner","repository","star","unstar","createRelease","editRelease","getRelease","deleteRelease","Gist","gistPath","create","update","Issue","list","query","Object","keys","option","comment","issue","comments_url","body","edit","get","Search","repositories","code","issues","users","RateLimit","getRateLimit","Symbol","iterator","obj","polyfill","getIssues","getRepo","getUser","getGist","getSearch"],"mappings":"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","file":"github.min.js","sourcesContent":["(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'utf8', 'axios', 'base-64', 'es6-promise'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('utf8'), require('axios'), require('base-64'), require('es6-promise'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.utf8, global.axios, global.base64, global.Promise);\n global.github = mod.exports;\n }\n})(this, function (module, Utf8, axios, Base64, Promise) {\n /*!\n * @overview Github.js\n *\n * @copyright (c) 2013 Michael Aufreiter, Development Seed\n * Github.js is freely distributable.\n *\n * @license Licensed under BSD-3-Clause-Clear\n *\n * For all details and documentation:\n * http://substance.io/michael/github\n */\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n function b64encode(string) {\n return Base64.encode(Utf8.encode(string));\n }\n\n if (Promise.polyfill) {\n Promise.polyfill();\n }\n\n // Initial Setup\n // -------------\n\n function Github(options) {\n options = options || {};\n\n var API_URL = options.apiUrl || 'https://api.github.com';\n\n // HTTP Request Abstraction\n // =======\n //\n // I'm not proud of this and neither should you be if you were responsible for the XMLHttpRequest spec.\n\n var _request = Github._request = function _request(method, path, data, cb, raw) {\n function getURL() {\n var url = path.indexOf('//') >= 0 ? path : API_URL + path;\n\n url += /\\?/.test(url) ? '&' : '?';\n\n if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) {\n for (var param in data) {\n if (data.hasOwnProperty(param)) {\n url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]);\n }\n }\n }\n\n return url.replace(/(×tamp=\\d+)/, '') + (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : '');\n }\n\n var config = {\n headers: {\n Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n method: method,\n data: data ? data : {},\n url: getURL()\n };\n\n if (options.token || options.username && options.password) {\n config.headers.Authorization = options.token ? 'token ' + options.token : 'Basic ' + b64encode(options.username + ':' + options.password);\n }\n\n return axios(config).then(function (response) {\n cb(null, response.data || true, response);\n }, function (response) {\n if (response.status === 304) {\n cb(null, response.data || true, response);\n } else {\n cb({\n path: path,\n request: response,\n error: response.status\n });\n }\n });\n };\n\n var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) {\n var results = [];\n\n (function iterate() {\n _request('GET', path, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (!(res instanceof Array)) {\n res = [res];\n }\n\n results.push.apply(results, res);\n\n var next = (xhr.headers.link || '').split(',').filter(function (link) {\n return (/rel=\"next\"/.test(link)\n );\n }).map(function (link) {\n return (/<(.*)>/.exec(link) || [])[1];\n }).pop();\n\n if (!next || singlePage) {\n cb(err, results, xhr);\n } else {\n path = next;\n iterate();\n }\n });\n })();\n };\n\n // User API\n // =======\n\n Github.User = function () {\n this.repos = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n\n var url = '/user/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user organizations\n // -------\n\n this.orgs = function (cb) {\n _request('GET', '/user/orgs', null, cb);\n };\n\n // List authenticated user's gists\n // -------\n\n this.gists = function (cb) {\n _request('GET', '/gists', null, cb);\n };\n\n // List authenticated user's unread notifications\n // -------\n\n this.notifications = function (options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = options || {};\n var url = '/notifications';\n var params = [];\n\n if (options.all) {\n params.push('all=true');\n }\n\n if (options.participating) {\n params.push('participating=true');\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.before) {\n var before = options.before;\n\n if (before.constructor === Date) {\n before = before.toISOString();\n }\n\n params.push('before=' + encodeURIComponent(before));\n }\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Show user information\n // -------\n\n this.show = function (username, cb) {\n var command = username ? '/users/' + username : '/user';\n\n _request('GET', command, null, cb);\n };\n\n // List user repositories\n // -------\n\n this.userRepos = function (username, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n var url = '/users/' + username + '/repos';\n var params = [];\n\n params.push('type=' + encodeURIComponent(options.type || 'all'));\n params.push('sort=' + encodeURIComponent(options.sort || 'updated'));\n params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore\n\n if (options.page) {\n params.push('page=' + encodeURIComponent(options.page));\n }\n\n url += '?' + params.join('&');\n\n _requestAllPages(url, !!options.page, cb);\n };\n\n // List user starred repositories\n // -------\n\n this.userStarred = function (username, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/users/' + username + '/starred?type=all&per_page=100';\n _requestAllPages(request, false, cb);\n };\n\n // List a user's gists\n // -------\n\n this.userGists = function (username, cb) {\n _request('GET', '/users/' + username + '/gists', null, cb);\n };\n\n // List organization repositories\n // -------\n\n this.orgRepos = function (orgname, cb) {\n // Github does not always honor the 1000 limit so we want to iterate over the data set.\n var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc';\n _requestAllPages(request, false, cb);\n };\n\n // Follow user\n // -------\n\n this.follow = function (username, cb) {\n _request('PUT', '/user/following/' + username, null, cb);\n };\n\n // Unfollow user\n // -------\n\n this.unfollow = function (username, cb) {\n _request('DELETE', '/user/following/' + username, null, cb);\n };\n\n // Create a repo\n // -------\n this.createRepo = function (options, cb) {\n _request('POST', '/user/repos', options, cb);\n };\n };\n\n // Repository API\n // =======\n\n Github.Repository = function (options) {\n var repo = options.name;\n var user = options.user;\n var fullname = options.fullname;\n\n var that = this;\n var repoPath;\n\n if (fullname) {\n repoPath = '/repos/' + fullname;\n } else {\n repoPath = '/repos/' + user + '/' + repo;\n }\n\n var currentTree = {\n branch: null,\n sha: null\n };\n\n // Uses the cache if branch has not been changed\n // -------\n\n function updateTree(branch, cb) {\n if (branch === currentTree.branch && currentTree.sha) {\n return cb(null, currentTree.sha);\n }\n\n that.getRef('heads/' + branch, function (err, sha) {\n currentTree.branch = branch;\n currentTree.sha = sha;\n cb(err, sha);\n });\n }\n\n // Get a particular reference\n // -------\n\n this.getRef = function (ref, cb) {\n _request('GET', repoPath + '/git/refs/' + ref, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.object.sha, xhr);\n });\n };\n\n // Create a new reference\n // --------\n //\n // {\n // \"ref\": \"refs/heads/my-new-branch-name\",\n // \"sha\": \"827efc6d56897b048c772eb4087f854f46256132\"\n // }\n\n this.createRef = function (options, cb) {\n _request('POST', repoPath + '/git/refs', options, cb);\n };\n\n // Delete a reference\n // --------\n //\n // Repo.deleteRef('heads/gh-pages')\n // repo.deleteRef('tags/v1.0')\n\n this.deleteRef = function (ref, cb) {\n _request('DELETE', repoPath + '/git/refs/' + ref, options, cb);\n };\n\n // Delete a repo\n // --------\n\n this.deleteRepo = function (cb) {\n _request('DELETE', repoPath, options, cb);\n };\n\n // List all tags of a repository\n // -------\n\n this.listTags = function (cb) {\n _request('GET', repoPath + '/tags', null, cb);\n };\n\n // List all pull requests of a respository\n // -------\n\n this.listPulls = function (options, cb) {\n options = options || {};\n var url = repoPath + '/pulls';\n var params = [];\n\n if (typeof options === 'string') {\n // Backward compatibility\n params.push('state=' + options);\n } else {\n if (options.state) {\n params.push('state=' + encodeURIComponent(options.state));\n }\n\n if (options.head) {\n params.push('head=' + encodeURIComponent(options.head));\n }\n\n if (options.base) {\n params.push('base=' + encodeURIComponent(options.base));\n }\n\n if (options.sort) {\n params.push('sort=' + encodeURIComponent(options.sort));\n }\n\n if (options.direction) {\n params.push('direction=' + encodeURIComponent(options.direction));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.per_page) {\n params.push('per_page=' + options.per_page);\n }\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Gets details for a specific pull request\n // -------\n\n this.getPull = function (number, cb) {\n _request('GET', repoPath + '/pulls/' + number, null, cb);\n };\n\n // Retrieve the changes made between base and head\n // -------\n\n this.compare = function (base, head, cb) {\n _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb);\n };\n\n // List all branches of a repository\n // -------\n\n this.listBranches = function (cb) {\n _request('GET', repoPath + '/git/refs/heads', null, function (err, heads, xhr) {\n if (err) {\n return cb(err);\n }\n\n heads = heads.map(function (head) {\n return head.ref.replace(/^refs\\/heads\\//, '');\n });\n\n cb(null, heads, xhr);\n });\n };\n\n // Retrieve the contents of a blob\n // -------\n\n this.getBlob = function (sha, cb) {\n _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw');\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getCommit = function (branch, sha, cb) {\n _request('GET', repoPath + '/git/commits/' + sha, null, cb);\n };\n\n // For a given file path, get the corresponding sha (blob for files, tree for dirs)\n // -------\n\n this.getSha = function (branch, path, cb) {\n if (!path || path === '') {\n return that.getRef('heads/' + branch, cb);\n }\n\n _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), null, function (err, pathContent, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, pathContent.sha, xhr);\n });\n };\n\n // Get the statuses for a particular SHA\n // -------\n\n this.getStatuses = function (sha, cb) {\n _request('GET', repoPath + '/statuses/' + sha, null, cb);\n };\n\n // Retrieve the tree a commit points to\n // -------\n\n this.getTree = function (tree, cb) {\n _request('GET', repoPath + '/git/trees/' + tree, null, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.tree, xhr);\n });\n };\n\n // Post a new blob object, getting a blob SHA back\n // -------\n\n this.postBlob = function (content, cb) {\n if (typeof content === 'string') {\n content = {\n content: Utf8.encode(content),\n encoding: 'utf-8'\n };\n } else {\n if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n // in NodeJS\n content = {\n content: content.toString('base64'),\n encoding: 'base64'\n };\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n content = {\n content: b64encode(content),\n encoding: 'base64'\n };\n } else {\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n _request('POST', repoPath + '/git/blobs', content, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Update an existing tree adding a new blob object getting a tree SHA back\n // -------\n\n this.updateTree = function (baseTree, path, blob, cb) {\n var data = {\n base_tree: baseTree,\n tree: [{\n path: path,\n mode: '100644',\n type: 'blob',\n sha: blob\n }]\n };\n\n _request('POST', repoPath + '/git/trees', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Post a new tree object having a file path pointer replaced\n // with a new blob SHA getting a tree SHA back\n // -------\n\n this.postTree = function (tree, cb) {\n _request('POST', repoPath + '/git/trees', {\n tree: tree\n }, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n cb(null, res.sha, xhr);\n });\n };\n\n // Create a new commit object with the current commit SHA as the parent\n // and the new tree SHA, getting a commit SHA back\n // -------\n\n this.commit = function (parent, tree, message, cb) {\n var user = new Github.User();\n\n user.show(null, function (err, userData) {\n if (err) {\n return cb(err);\n }\n\n var data = {\n message: message,\n author: {\n name: options.user,\n email: userData.email\n },\n parents: [parent],\n tree: tree\n };\n\n _request('POST', repoPath + '/git/commits', data, function (err, res, xhr) {\n if (err) {\n return cb(err);\n }\n\n currentTree.sha = res.sha; // Update latest commit\n\n cb(null, res.sha, xhr);\n });\n });\n };\n\n // Update the reference of your head to point to the new commit SHA\n // -------\n\n this.updateHead = function (head, commit, cb) {\n _request('PATCH', repoPath + '/git/refs/heads/' + head, {\n sha: commit\n }, cb);\n };\n\n // Show repository information\n // -------\n\n this.show = function (cb) {\n _request('GET', repoPath, null, cb);\n };\n\n // Show repository contributors\n // -------\n\n this.contributors = function (cb, retry) {\n retry = retry || 1000;\n var that = this;\n\n _request('GET', repoPath + '/stats/contributors', null, function (err, data, xhr) {\n if (err) {\n return cb(err);\n }\n\n if (xhr.status === 202) {\n setTimeout(function () {\n that.contributors(cb, retry);\n }, retry);\n } else {\n cb(err, data, xhr);\n }\n });\n };\n\n // Get contents\n // --------\n\n this.contents = function (ref, path, cb) {\n path = encodeURI(path);\n _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), {\n ref: ref\n }, cb);\n };\n\n // Fork repository\n // -------\n\n this.fork = function (cb) {\n _request('POST', repoPath + '/forks', null, cb);\n };\n\n // List forks\n // --------\n\n this.listForks = function (cb) {\n _request('GET', repoPath + '/forks', null, cb);\n };\n\n // Branch repository\n // --------\n\n this.branch = function (oldBranch, newBranch, cb) {\n if (arguments.length === 2 && typeof arguments[1] === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n this.getRef('heads/' + oldBranch, function (err, ref) {\n if (err && cb) {\n return cb(err);\n }\n\n that.createRef({\n ref: 'refs/heads/' + newBranch,\n sha: ref\n }, cb);\n });\n };\n\n // Create pull request\n // --------\n\n this.createPullRequest = function (options, cb) {\n _request('POST', repoPath + '/pulls', options, cb);\n };\n\n // List hooks\n // --------\n\n this.listHooks = function (cb) {\n _request('GET', repoPath + '/hooks', null, cb);\n };\n\n // Get a hook\n // --------\n\n this.getHook = function (id, cb) {\n _request('GET', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Create a hook\n // --------\n\n this.createHook = function (options, cb) {\n _request('POST', repoPath + '/hooks', options, cb);\n };\n\n // Edit a hook\n // --------\n\n this.editHook = function (id, options, cb) {\n _request('PATCH', repoPath + '/hooks/' + id, options, cb);\n };\n\n // Delete a hook\n // --------\n\n this.deleteHook = function (id, cb) {\n _request('DELETE', repoPath + '/hooks/' + id, null, cb);\n };\n\n // Read file at given path\n // -------\n\n this.read = function (branch, path, cb) {\n _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), null, cb, true);\n };\n\n // Remove a file\n // -------\n\n this.remove = function (branch, path, cb) {\n that.getSha(branch, path, function (err, sha) {\n if (err) {\n return cb(err);\n }\n\n _request('DELETE', repoPath + '/contents/' + path, {\n message: path + ' is removed',\n sha: sha,\n branch: branch\n }, cb);\n });\n };\n\n // Alias for repo.remove for backwards comapt.\n // -------\n this.delete = this.remove;\n\n // Move a file to a new location\n // -------\n\n this.move = function (branch, path, newPath, cb) {\n updateTree(branch, function (err, latestCommit) {\n that.getTree(latestCommit + '?recursive=true', function (err, tree) {\n // Update Tree\n tree.forEach(function (ref) {\n if (ref.path === path) {\n ref.path = newPath;\n }\n\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n });\n\n that.postTree(tree, function (err, rootTree) {\n that.commit(latestCommit, rootTree, 'Deleted ' + path, function (err, commit) {\n that.updateHead(branch, commit, cb);\n });\n });\n });\n });\n };\n\n // Write file contents to a given branch and path\n // -------\n\n this.write = function (branch, path, content, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n that.getSha(branch, encodeURI(path), function (err, sha) {\n var writeOptions = {\n message: message,\n content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content,\n branch: branch,\n committer: options && options.committer ? options.committer : undefined,\n author: options && options.author ? options.author : undefined\n };\n\n // If no error, we set the sha to overwrite an existing file\n if (!(err && err.error !== 404)) {\n writeOptions.sha = sha;\n }\n\n _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb);\n });\n };\n\n // List commits on a repository. Takes an object of optional parameters:\n // sha: SHA or branch to start listing commits from\n // path: Only commits containing this file path will be returned\n // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address\n // since: ISO 8601 date - only commits after this date will be returned\n // until: ISO 8601 date - only commits before this date will be returned\n // -------\n\n this.getCommits = function (options, cb) {\n options = options || {};\n var url = repoPath + '/commits';\n var params = [];\n\n if (options.sha) {\n params.push('sha=' + encodeURIComponent(options.sha));\n }\n\n if (options.path) {\n params.push('path=' + encodeURIComponent(options.path));\n }\n\n if (options.author) {\n params.push('author=' + encodeURIComponent(options.author));\n }\n\n if (options.since) {\n var since = options.since;\n\n if (since.constructor === Date) {\n since = since.toISOString();\n }\n\n params.push('since=' + encodeURIComponent(since));\n }\n\n if (options.until) {\n var until = options.until;\n\n if (until.constructor === Date) {\n until = until.toISOString();\n }\n\n params.push('until=' + encodeURIComponent(until));\n }\n\n if (options.page) {\n params.push('page=' + options.page);\n }\n\n if (options.perpage) {\n params.push('per_page=' + options.perpage);\n }\n\n if (params.length > 0) {\n url += '?' + params.join('&');\n }\n\n _request('GET', url, null, cb);\n };\n\n // Check if a repository is starred.\n // --------\n\n this.isStarred = function (owner, repository, cb) {\n _request('GET', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Star a repository.\n // --------\n\n this.star = function (owner, repository, cb) {\n _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Unstar a repository.\n // --------\n\n this.unstar = function (owner, repository, cb) {\n _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb);\n };\n\n // Create a new release\n // --------\n\n this.createRelease = function (options, cb) {\n _request('POST', repoPath + '/releases', options, cb);\n };\n\n // Edit a release\n // --------\n\n this.editRelease = function (id, options, cb) {\n _request('PATCH', repoPath + '/releases/' + id, options, cb);\n };\n\n // Get a single release\n // --------\n\n this.getRelease = function (id, cb) {\n _request('GET', repoPath + '/releases/' + id, null, cb);\n };\n\n // Remove a release\n // --------\n\n this.deleteRelease = function (id, cb) {\n _request('DELETE', repoPath + '/releases/' + id, null, cb);\n };\n };\n\n // Gists API\n // =======\n\n Github.Gist = function (options) {\n var id = options.id;\n var gistPath = '/gists/' + id;\n\n // Read the gist\n // --------\n\n this.read = function (cb) {\n _request('GET', gistPath, null, cb);\n };\n\n // Create the gist\n // --------\n // {\n // \"description\": \"the description for this gist\",\n // \"public\": true,\n // \"files\": {\n // \"file1.txt\": {\n // \"content\": \"String file contents\"\n // }\n // }\n // }\n\n this.create = function (options, cb) {\n _request('POST', '/gists', options, cb);\n };\n\n // Delete the gist\n // --------\n\n this.delete = function (cb) {\n _request('DELETE', gistPath, null, cb);\n };\n\n // Fork a gist\n // --------\n\n this.fork = function (cb) {\n _request('POST', gistPath + '/fork', null, cb);\n };\n\n // Update a gist with the new stuff\n // --------\n\n this.update = function (options, cb) {\n _request('PATCH', gistPath, options, cb);\n };\n\n // Star a gist\n // --------\n\n this.star = function (cb) {\n _request('PUT', gistPath + '/star', null, cb);\n };\n\n // Untar a gist\n // --------\n\n this.unstar = function (cb) {\n _request('DELETE', gistPath + '/star', null, cb);\n };\n\n // Check if a gist is starred\n // --------\n\n this.isStarred = function (cb) {\n _request('GET', gistPath + '/star', null, cb);\n };\n };\n\n // Issues API\n // ==========\n\n Github.Issue = function (options) {\n var path = '/repos/' + options.user + '/' + options.repo + '/issues';\n\n this.create = function (options, cb) {\n _request('POST', path, options, cb);\n };\n\n this.list = function (options, cb) {\n var query = [];\n\n Object.keys(options).forEach(function (option) {\n query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option]));\n });\n\n _requestAllPages(path + '?' + query.join('&'), !!options.page, cb);\n };\n\n this.comment = function (issue, comment, cb) {\n _request('POST', issue.comments_url, {\n body: comment\n }, cb);\n };\n\n this.edit = function (issue, options, cb) {\n _request('PATCH', path + '/' + issue, options, cb);\n };\n\n this.get = function (issue, cb) {\n _request('GET', path + '/' + issue, null, cb);\n };\n };\n\n // Search API\n // ==========\n\n Github.Search = function (options) {\n var path = '/search/';\n var query = '?q=' + options.query;\n\n this.repositories = function (options, cb) {\n _request('GET', path + 'repositories' + query, options, cb);\n };\n\n this.code = function (options, cb) {\n _request('GET', path + 'code' + query, options, cb);\n };\n\n this.issues = function (options, cb) {\n _request('GET', path + 'issues' + query, options, cb);\n };\n\n this.users = function (options, cb) {\n _request('GET', path + 'users' + query, options, cb);\n };\n };\n\n // Rate Limit API\n // ==========\n\n Github.RateLimit = function () {\n this.getRateLimit = function (cb) {\n _request('GET', '/rate_limit', null, cb);\n };\n };\n\n return Github;\n };\n\n // Top Level API\n // -------\n\n Github.getIssues = function (user, repo) {\n return new Github.Issue({\n user: user,\n repo: repo\n });\n };\n\n Github.getRepo = function (user, repo) {\n if (!repo) {\n return new Github.Repository({\n fullname: user\n });\n } else {\n return new Github.Repository({\n user: user,\n name: repo\n });\n }\n };\n\n Github.getUser = function () {\n return new Github.User();\n };\n\n Github.getGist = function (id) {\n return new Github.Gist({\n id: id\n });\n };\n\n Github.getSearch = function (query) {\n return new Github.Search({\n query: query\n });\n };\n\n Github.getRateLimit = function () {\n return new Github.RateLimit();\n };\n\n module.exports = Github;\n});"],"sourceRoot":"/source/"} \ No newline at end of file From 5e9249bf6fb3d06205bcb636730d7a296b66741b Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 26 Apr 2016 07:34:42 -0500 Subject: [PATCH 006/137] refactor: move codebase to ES2015 --- CHANGELOG.md | 56 + README.md | 558 +--------- src/Gist.js | 112 ++ src/Issue.js | 85 ++ src/Organization.js | 35 + src/Ratelimit.js | 35 + src/Repository.js | 673 +++++++++++ src/Requestable.js | 260 +++++ src/Search.js | 89 ++ src/User.js | 188 ++++ src/github.js | 1235 ++------------------- test/{helpers.js => helpers/callbacks.js} | 26 +- test/mocha.opts | 3 + test/test.auth.js | 25 +- test/test.gist.js | 18 +- test/test.issue.js | 26 +- test/test.org.js | 32 +- test/test.rate-limit.js | 17 +- test/test.repo.js | 265 +++-- test/test.search.js | 37 +- test/test.user.js | 27 +- 21 files changed, 1873 insertions(+), 1929 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 src/Gist.js create mode 100644 src/Issue.js create mode 100644 src/Organization.js create mode 100644 src/Ratelimit.js create mode 100644 src/Repository.js create mode 100644 src/Requestable.js create mode 100644 src/Search.js create mode 100644 src/User.js rename test/{helpers.js => helpers/callbacks.js} (55%) create mode 100644 test/mocha.opts diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..d61c1c43 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,56 @@ +## Change Log + +### 1.0.0 +Complete rewrite in ES2015. + +* Renamed many of the APIs for better internal consistency. +* Promise-ified the API +* Modularized code to potentially allow for custom builds +* Refactored tests to run primarially in mocha +* Auto-generation of documentation + +### 0.10.X + +Create and delete repositories +Repos - getCommit + +### 0.9.X + +Paging (introduced at tail end of 0.8.X, note: different callbacks for success & errors now) + +### 0.8.X + +Fixes and tweaks, simpler auth, CI tests, node.js support, Raw+JSON, UTF8, plus: +Users - follow, unfollow, get info, notifications +Gists - create +Issues - get +Repos - createRepo, deleteRepo, createBranch, star, unstar, isStarred, getCommits, listTags, listPulls, getPull, compare +Hooks - listHooks, getHook, createHook, editHook, deleteHook + +### 0.7.X + +Switched to a native `request` implementation (thanks @mattpass). Adds support for GitHub gists, forks and pull requests. + +### 0.6.X + +Adds support for organizations and fixes an encoding issue. + +### 0.5.X + +Smart caching of latest commit sha. + +### 0.4.X + +Added support for [OAuth](http://developer.github.com/v3/oauth/). + +### 0.3.X + +Support for Moving and removing files. + +### 0.2.X + +Consider commit messages. + +### 0.1.X + +Initial version. diff --git a/README.md b/README.md index 12101c09..3a5b2090 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,20 @@ # Github.js -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/michael/github?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Stories in Ready](https://badge.waffle.io/michael/github.png?label=ready&title=Ready)](https://waffle.io/michael/github) [![Build Status](https://travis-ci.org/michael/github.svg?branch=master)](https://travis-ci.org/michael/github) [![codecov.io](https://codecov.io/github/michael/github/coverage.svg?branch=master)](https://codecov.io/github/michael/github?branch=master) +[![Downloads per month](https://img.shields.io/npm/dm/github-api.svg?maxAge=2592000)][npm-package] +[![Latest version](https://img.shields.io/npm/v/github-api.svg?maxAge=2592000)][npm-package] +[![Gitter](https://img.shields.io/gitter/room/michael/github.js.svg?maxAge=2592000)][gitter] +[![Travis](https://img.shields.io/travis/michael/github.svg?maxAge=2592000)][travis-ci] +[![Codecov](https://img.shields.io/codecov/c/github/michael/github.svg?maxAge=2592000)][codecov] -Github.js provides a minimal higher-level wrapper around git's [plumbing commands](http://git-scm.com/book/en/Git-Internals-Plumbing-and-Porcelain), exposing an API for manipulating GitHub repositories on the file level. It was formerly developed in the context of [Prose](http://prose.io), a content editor for GitHub. +Github.js provides a minimal higher-level wrapper around Github's API. It was concieved in the context of +[Prose][prose], a content editor for GitHub. ## Installation - -Either grab `github.js` from this repo or install Github.js via npm: +Github.js is available from `npm` or `bower`. ``` npm install github-api ``` - -Alternatively, you can install the library using Bower: - ``` bower install github-api ``` @@ -22,9 +23,8 @@ bower install github-api [![Sauce Test Status](https://saucelabs.com/browser-matrix/githubjs.svg)](https://saucelabs.com/u/githubjs) -**Note**: Starting from version 0.10.8, Github.js supports **Internet Explorer 9**. However, the underlying -methodology used under the hood to perform CORS requests (the `XDomainRequest` object), -[has limitations](http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx). +**Note**: Starting from version 0.10.8, Github.js supports **Internet Explorer 9**. However, the underlying methodology +used under the hood to perform CORS requests (the `XDomainRequest` object), [has limitations](xhr-link). In particular, requests must be targeted to the same scheme as the hosting page. This means that if a page is at http://example.com, your target URL must also begin with HTTP. Similarly, if your page is at https://example.com, then your target URL must also begin with HTTPS. For this reason, if your requests are sent to the GitHub API (the default), @@ -36,535 +36,13 @@ The team behind Github.js has created a whole organization, called [GitHub Tools dedicated to GitHub and its API. In the near future this repository could be moved under the GitHub Tools organization as well. In the meantime, we recommend you to take a look at other projects of the organization. -## Usage - -Create a Github instance. - -```js -var github = new Github({ - username: "YOU_USER", - password: "YOUR_PASSWORD", - auth: "basic" -}); -``` - -Or if you prefer OAuth, it looks like this: - -```js -var github = new Github({ - token: "OAUTH_TOKEN", - auth: "oauth" -}); -``` - -Some information, such as public Gists, can be accessed without any authentication. For such use cases, you can create -a Github instance as follows: - -```js -var github = new Github(); -``` - -In conclusion, you can use: -* Authorised App Tokens (via client/secret pairs), used for bigger applications, created in web-flows/on the fly -* Personal Access Tokens (simpler to set up), used on command lines, scripts etc, created in GitHub web UI -* No authorization - -See these pages for more info: - -[Creating an access token for command-line use](https://help.github.com/articles/creating-an-access-token-for-command-line-use) - -[Github API OAuth Overview](http://developer.github.com/v3/oauth) - -Enterprise Github instances may be specified using the `apiUrl` option: - -```js -var github = new Github({ - apiUrl: "https://serverName/api/v3", - ... -}); -``` - -## Repository API - - -```js -var repo = github.getRepo(username, reponame); -``` - -Show repository information - -```js -repo.show(function(err, repo) {}); -``` - -Delete a repository - -```js -repo.deleteRepo(function(err, res) {}); -``` - -Get contents at a particular path in a particular branch. - -```js -repo.contents(branch, "path/to/dir", function(err, contents) {}); -``` - -Fork repository. This operation runs asynchronously. You may want to poll for `repo.contents` until the forked repo is ready. - -```js -repo.fork(function(err) {}); -``` - -List forks. - -```js -repo.listForks(function(err, forks) {}); -``` - -Create new branch for repo. You can omit oldBranchName to default to "master". - -```js -repo.branch(oldBranchName, newBranchName, function(err) {}); -``` - -List Pull Requests. - -```js -var state = 'open'; //or 'closed', or 'all' -repo.listPulls(state, function(err, pullRequests) {}); -``` - -Get details of a Pull Request. - -```js -var pullRequestID = 123; -repo.getPull(pullRequestID, function(err, pullRequestInfo) {}); -``` - -Create Pull Request. - -```js -var pull = { - title: message, - body: "This pull request has been automatically generated by Prose.io.", - base: "gh-pages", - head: "michael" + ":" + "prose-patch" -}; -repo.createPullRequest(pull, function(err, pullRequest) {}); -``` - -Retrieve all available branches (aka heads) of a repository. - -```js -repo.listBranches(function(err, branches) {}); -``` - -Get list of statuses for a particular commit. - -```js -repo.getStatuses(sha, function(err, statuses) {}); -``` - -Store content at a certain path. If the file specified in the path exists, the content is updated. If the file doesn't exist, it's created on the fly. You can also provide an optional object literal, (`options` in the example below) containing information about the author and the committer. - -```js -var options = { - author: {name: 'Author Name', email: 'author@example.com'}, - committer: {name: 'Committer Name', email: 'committer@example.com'}, - encode: true // Whether to base64 encode the file. (default: true) -} -repo.write('master', 'path/to/file', 'YOUR_NEW_CONTENTS', 'YOUR_COMMIT_MESSAGE', options, function(err) {}); -``` - -Not only can you can write files, you can of course read them. - -```js -repo.read('master', 'path/to/file', function(err, data) {}); -``` - -Move a file from A to B. - -```js -repo.move('master', 'path/to/file', 'path/to/new_file', function(err) {}); -``` - -Remove a file. - -```js -repo.remove('master', 'path/to/file', function(err) {}); -``` - -Get information about a particular commit. - -```js -repo.getCommit('master', sha, function(err, commit) {}); -``` - -Exploring files of a repository is easy too by accessing the top level tree object. - -```js -repo.getTree('master', function(err, tree) {}); -``` - -If you want to access all blobs and trees recursively, you can add `?recursive=true`. - -```js -repo.getTree('master?recursive=true', function(err, tree) {}); -``` - -Given a filepath, retrieve the reference blob or tree sha. - -```js -repo.getSha('master', '/path/to/file', function(err, sha) {}); -``` - -For a given reference, get the corresponding commit sha. - -```js -repo.getRef('heads/master', function(err, sha) {}); -``` - -Create a new reference. - -```js -var refSpec = { - "ref": "refs/heads/my-new-branch-name", - "sha": "827efc6d56897b048c772eb4087f854f46256132" -}; -repo.createRef(refSpec, function(err) {}); -``` - -Delete a reference. - -```js -repo.deleteRef('heads/gh-pages', function(err) {}); -``` - -Get contributors list with additions, deletions, and commit counts. - -```js -repo.contributors(function(err, data) {}); -``` - -Get collaborators list. - -```js -repo.collaborators(function(err, data) {}); -``` - -Check if user is a collaborator on the repository. - -```js -repo.isCollaborator(username, function(err) {}); -``` - -Check if a repository is starred. - -```js -repo.isStarred(owner, repository, function(err) {}); -``` - -Star a repository. - -```js -repo.star(owner, repository, function(err) {}); -``` - -Unstar a repository. - -```js -repo.unstar(owner, repository, function(err) {}); -``` - -## Organization API - - -```js -var organization = github.getOrg(); -``` - -Create a new organization repository for the authenticated user - -```js -var repo = { - orgname: 'github-api-tests', - name: 'test' -}; - -organization.createRepo(repo, function(err, res) {}); -``` - -The repository description, homepage, private/public can also be set. [For a full list of options see the documentation](https://developer.github.com/v3/repos/#create). - -## User API - - -```js -var user = github.getUser(); -``` - -List repositories of the authenticated user, including private repositories and repositories in which the user is a -collaborator and not an owner. - -```js -user.repos(options, function(err, repos) {}); -``` - -List organizations the authenticated user belongs to. - -```js -user.orgs(function(err, orgs) {}); -``` - -List authenticated user's gists. - -```js -user.gists(function(err, gists) {}); -``` - -List unread notifications for the authenticated user. - -```js -user.notifications(options, function(err, notifications) {}); -``` - -Show user information for a particular username. Also works for organizations. Pass in a falsy value (null, '', etc) -for 'username' to retrieve user information for the currently authorized user. - -```js -user.show(username, function(err, user) {}); -``` - -List public repositories for a particular user. - -```js -user.userRepos(username, options, function(err, repos) {}); -``` - -List starred repositories for a particular user. - -```js -user.userStarred(username, function(err, repos) {}); -``` - -Create a new repo for the authenticated user - -```js -user.createRepo({"name": "test"}, function(err, res) {}); -``` -Repo description, homepage, private/public can also be set. -For a full list of options see the docs [here](https://developer.github.com/v3/repos/#create) - - -List repositories for a particular organization. Includes private repositories if you are authorized. - -```js -user.orgRepos(orgname, function(err, repos) {}); -``` - -List all gists of a particular user. If username is ommitted gists of the current authenticated user are returned. - -```js -user.userGists(username, function(err, gists) {}); -``` - -## Gist API - -```js -var gist = github.getGist(3165654); -``` - -Read the contents of a Gist. - -```js -gist.read(function(err, gist) { - -}); -``` - -Updating the contents of a Gist. Please consult the documentation on [GitHub](http://developer.github.com/v3/gists/). - -```js -var delta = { - "description": "the description for this gist", - "files": { - "file1.txt": { - "content": "updated file contents" - }, - "old_name.txt": { - "filename": "new_name.txt", - "content": "modified contents" - }, - "new_file.txt": { - "content": "a new file" - }, - "delete_this_file.txt": null - } -}; - -gist.update(delta, function(err, gist) { - -}); -``` -## Issues API - -```js -var issues = github.getIssues(username, reponame); -``` - -To read all the issues of a given repository - -```js -issues.list(options, function(err, issues) {}); -``` - -To create an issue - -```js -var options = { - title: "Found a bug", - body: "I'm having a problem with this.", - assignee: "assignee_username", - milestone: 1, - labels: [ - "Label1", - "Label2" - ] -}; - -issues.create(options, function(err, issue) {}); -``` - -To comment in a issue - -```js -issues.comment(issue, comment, function(err, comment) {}); -``` - -To edit an issue - -```js -var options = { - title: "Found a bug", - body: "I'm having a problem with this.", - assignee: "assignee_username", - milestone: 1, - state: "open", - labels: [ - "Label1", - "Label2" - ] -}; - -issues.edit(issue, options, function (err, issue) {}); -``` - -To get an issue - -```js -issues.get(issue, function (err, issue) {}); -``` - -## Search API - -```js -var search = github.getSearch(query); -``` - -### Search repositories - -Suppose you want to search for popular Tetris repositories written in Assembly. Your query might look like this: - -```js -var search = github.getSearch("tetris+language:assembly&sort=stars&order=desc"); -search.repositories(options, function (err, repositories) {}); -``` - -### Search code - -Suppose you want to find the definition of the addClass function inside jQuery. Your query would look something like this: - -```js -var search = github.getSearch("addClass+in:file+language:js+repo:jquery/jquery"); -search.code(options, function (err, codes) {}); -``` - -### Search issues - -Let’s say you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this: - -```js -var search = github.getSearch("windows+label:bug+language:python+state:open&sort=created&order=asc"); -search.issues(options, function (err, issues) {}); -``` - -### Search users - -Imagine you’re looking for a list of popular users. You might try out this query: - -```js -var search = github.getSearch("tom+repos:%3E42+followers:%3E1000"); -search.users(options, function (err, users) {}); -``` - -Here, we’re looking at users with the name Tom. We’re only interested in those with more than 42 repositories, and only if they have over 1,000 followers. - -## Rate Limit API - -```js -var rateLimit = github.getRateLimit(); -``` - -Get the rate limit. - -```js -rateLimit.getRateLimit(function (err, rateInfo) {}); -``` - -## Change Log - -### 0.10.X - -Create and delete repositories -Repos - getCommit - -### 0.9.X - -Paging (introduced at tail end of 0.8.X, note: different callbacks for success & errors now) - -### 0.8.X - -Fixes and tweaks, simpler auth, CI tests, node.js support, Raw+JSON, UTF8, plus: -Users - follow, unfollow, get info, notifications -Gists - create -Issues - get -Repos - createRepo, deleteRepo, createBranch, star, unstar, isStarred, getCommits, listTags, listPulls, getPull, compare -Hooks - listHooks, getHook, createHook, editHook, deleteHook - -### 0.7.X - -Switched to a native `request` implementation (thanks @mattpass). Adds support for GitHub gists, forks and pull requests. - -### 0.6.X - -Adds support for organizations and fixes an encoding issue. - -### 0.5.X - -Smart caching of latest commit sha. - -### 0.4.X - -Added support for [OAuth](http://developer.github.com/v3/oauth/). - -### 0.3.X - -Support for Moving and removing files. - -### 0.2.X - -Consider commit messages. +## Example -### 0.1.X +**TODO** -Initial version. +[codecov]: https://codecov.io/github/michael/github?branch=master +[travis-ci]: https://travis-ci.org/michael/github +[gitter]: https://gitter.im/michael/github +[npm-package]: https://www.npmjs.com/package/github-api +[prose]: http://prose.io +[xhr-link]: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx diff --git a/src/Gist.js b/src/Gist.js new file mode 100644 index 00000000..a24917b5 --- /dev/null +++ b/src/Gist.js @@ -0,0 +1,112 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; + +/** + * A Gist can retrieve and modify gists. + */ +class Gist extends Requestable { + /** + * Create a Gist. + * @param {string} id - the id of the gist (not required when creating a gist) + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(id, auth, apiBase) { + super(auth, apiBase); + this.id = id; + } + + /** + * Fetch a gist. + * @see https://developer.github.com/v3/gists/#get-a-single-gist + * @param {Requestable.callback} [cb] - will receive the gist + * @return {Promise} - the Promise for the http request + */ + read(cb) { + return this._request('GET', `/gists/${this.id}`, null, cb); + } + + /** + * Create a new gist. + * @see https://developer.github.com/v3/gists/#create-a-gist + * @param {Object} gist - the data for the new gist + * @param {Requestable.callback} [cb] - will receive the new gist upon creation + * @return {Promise} - the Promise for the http request + */ + create(gist, cb) { + return this._request('POST', '/gists', gist, cb) + .then((response) => { + this.id = response.data.id; + return response; + }); + } + + /** + * Delete a gist. + * @see https://developer.github.com/v3/gists/#delete-a-gist + * @param {Requestable.callback} [cb] - will receive true if the request succeeds + * @return {Promise} - the Promise for the http request + */ + delete(cb) { + return this._request('DELETE', `/gists/${this.id}`, null, cb); + } + + /** + * Fork a gist. + * @see https://developer.github.com/v3/gists/#fork-a-gist + * @param {Requestable.callback} [cb] - the function that will receive the gist + * @return {Promise} - the Promise for the http request + */ + fork(cb) { + return this._request('POST', `/gists/${this.id}/forks`, null, cb); + } + + /** + * Modify a gist. + * @see https://developer.github.com/v3/gists/#edit-a-gist + * @param {Object} gist - the data for the new gist + * @param {Requestable.callback} [cb] - the function that receives the API result + * @return {Promise} - the Promise for the http request + */ + update(gist, cb) { + return this._request('PATCH', `/gists/${this.id}`, gist, cb); + } + + /** + * Star a gist. + * @see https://developer.github.com/v3/gists/#star-a-gist + * @param {Requestable.callback} [cb] - will receive true if the request is successful + * @return {Promise} - the Promise for the http request + */ + star(cb) { + return this._request('PUT', `/gists/${this.id}/star`, null, cb); + } + + /** + * Unstar a gist. + * @see https://developer.github.com/v3/gists/#unstar-a-gist + * @param {Requestable.callback} [cb] - will receive true if the request is successful + * @return {Promise} - the Promise for the http request + */ + unstar(cb) { + return this._request('DELETE', `/gists/${this.id}/star`, null, cb); + } + + /** + * Check if a gist is starred by the user. + * @see https://developer.github.com/v3/gists/#check-if-a-gist-is-starred + * @param {Requestable.callback} [cb] - will receive true if the gist is starred and false if the gist is not starred + * @return {Promise} - the Promise for the http request + */ + isStarred(cb) { + return this._request204or404(`/gists/${this.id}/star`, null, cb); + } +} + +module.exports = Gist; diff --git a/src/Issue.js b/src/Issue.js new file mode 100644 index 00000000..67155599 --- /dev/null +++ b/src/Issue.js @@ -0,0 +1,85 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; + +/** + * Issue wraps the functionality to get issues for repositories + */ +class Issue extends Requestable { + /** + * Create a new Issue + * @param {string} repoPath - the full name (:user/:repo) to get issues for + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(repoPath, auth, apiBase) { + super(auth, apiBase); + this.__issuesPath = `/repos/${repoPath}/issues`; + } + + /** + * Create a new issue + * @see https://developer.github.com/v3/issues/#create-an-issue + * @param {Object} issueData - the issue to create + * @param {Requestable.callback} [cb] - will receive the created issue + * @return {Promise} - the promise for the http request + */ + create(issueData, cb) { + this._request('POST', this.__issuesPath, issueData, cb); + } + + /** + * List the issues for the repository + * @see https://developer.github.com/v3/issues/#list-issues-for-a-repository + * @param {Object} options - filtering options + * @param {Requestable.callback} [cb] - will receive the array of issues + * @return {Promise} - the promise for the http request + */ + list(options, cb) { + this._requestAllPages(this.__issuesPath, options, cb); + } + + /** + * Comment on an issue + * @see https://developer.github.com/v3/issues/comments/#create-a-comment + * @param {Object} issue - an issue object fetched from GitHub + * @param {string} comment - the comment to add + * @param {Requestable.callback} [cb] - will receive the created comment + * @return {Promise} - the promise for the http request + */ + comment(issue, comment, cb) { + // path should change to be `${this.__issuesPath}/${issue}/comments` + this._request('POST', issue.comments_url, {body: comment}, cb); // jscs:ignore + } + + /** + * Edit an issue + * @see https://developer.github.com/v3/issues/#edit-an-issue + * @param {number} issue - the issue number to edit + * @param {Object} issueData - the new issue data + * @param {Requestable.callback} [cb] - will receive the modified issue + * @return {Promise} - the promise for the http request + */ + edit(issue, issueData, cb) { + this._request('PATCH', `${this.__issuesPath}/${issue}`, issueData, cb); + } + + /** + * Get a particular issue + * @see https://developer.github.com/v3/issues/#get-a-single-issue + * @param {number} issue - the issue number to fetch + * @param {Requestable.callback} [cb] - will receive the issue + * @return {Promise} - the promise for the http request + */ + get(issue, cb) { + this._request('GET', `${this.__issuesPath}/${issue}`, null, cb); + } + +} + +module.exports = Issue; diff --git a/src/Organization.js b/src/Organization.js new file mode 100644 index 00000000..d6bd441d --- /dev/null +++ b/src/Organization.js @@ -0,0 +1,35 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; + +/** + * Organization encapsulates the functionality to create repositories in organizations + */ +class Organization extends Requestable { + /** + * Create a new Organization + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(auth, apiBase) { + super(auth, apiBase); + } + + /** + * Create a repository in an organization + * @see https://developer.github.com/v3/repos/#create + * @param {Object} options - contains the organization name and repository definition + * @param {Requestable.callback} [cb] - will receive the created repository + * @return {Promise} - the promise for the http request + */ + createRepo(options, cb) { + this._request('POST', '/orgs/' + options.orgname + '/repos', options, cb); + } +} + +module.exports = Organization; diff --git a/src/Ratelimit.js b/src/Ratelimit.js new file mode 100644 index 00000000..cdc1fd24 --- /dev/null +++ b/src/Ratelimit.js @@ -0,0 +1,35 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; + +/** + * RateLimit allows users to query their rate-limit status + */ +class RateLimit extends Requestable { + /** + * construct a RateLimit + * @param {Requestable.auth} auth - the credentials to authenticate to GitHub + * @param {string} [apiBase] - the base Github API URL + * @return {Promise} - the promise for the http request + */ + constructor(auth, apiBase) { + super(auth, apiBase); + } + + /** + * Query the current rate limit + * @see https://developer.github.com/v3/rate_limit/ + * @param {Requestable.callback} [cb] - will receive the rate-limit data + * @return {Promise} - the promise for the http request + */ + getRateLimit(cb) { + return this._request('GET', '/rate_limit', null, cb); + } +} + +module.exports = RateLimit; diff --git a/src/Repository.js b/src/Repository.js new file mode 100644 index 00000000..009a9f3f --- /dev/null +++ b/src/Repository.js @@ -0,0 +1,673 @@ +'use strict'; +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; +import Utf8 from 'utf8'; +import {Base64} from 'js-base64'; +import debug from 'debug'; +const log = debug('github:repository'); + +/** + * Respository encapsulates the functionality to create, query, and modify files. + */ +class Repository extends Requestable { + /** + * Create a Repository. + * @param {string} fullname - the full name of the repository + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(fullname, auth, apiBase) { + super(auth, apiBase); + this.__repoPath = `/repos/${fullname}`; + this.__currentTree = { + branch: null, + sha: null + }; + } + + /** + * Get a reference + * @see https://developer.github.com/v3/git/refs/#get-a-reference + * @param {string} ref - the reference to get + * @param {Requestable.callback} [cb] - will receive the reference's refSpec or a list of refSpecs that match `ref` + * @return {Promise} - the promise for the http request + */ + getRef(ref, cb) { + return this._request('GET', `${this.__repoPath}/git/refs/${ref}`, null, cb); + } + + /** + * Create a reference + * @see https://developer.github.com/v3/git/refs/#create-a-reference + * @param {Object} options - the object describing the ref + * @param {Requestable.callback} [cb] - will receive the ref + * @return {Promise} - the promise for the http request + */ + createRef(options, cb) { + return this._request('POST', `${this.__repoPath}/git/refs`, options, cb); + } + + /** + * Delete a reference + * @see https://developer.github.com/v3/git/refs/#delete-a-reference + * @param {string} ref - the name of the ref to delte + * @param {Requestable.callback} [cb] - will receive true if the request is successful + * @return {Promise} - the promise for the http request + */ + deleteRef(ref, cb) { + return this._request('DELETE', `${this.__repoPath}/git/refs/${ref}`, null, cb); + } + + /** + * Delete a repository + * @see https://developer.github.com/v3/repos/#delete-a-repository + * @param {Requestable.callback} [cb] - will receive true if the request is successful + * @return {Promise} - the promise for the http request + */ + deleteRepo(cb) { + return this._request('DELETE', this.__repoPath, null, cb); + } + + /** + * List the tags on a repository + * @see https://developer.github.com/v3/repos/#list-tags + * @param {Requestable.callback} [cb] - will receive the tag data + * @return {Promise} - the promise for the http request + */ + listTags(cb) { + return this._request('GET', `${this.__repoPath}/tags`, null, cb); + } + + /** + * List the open pull requests on the repository + * @see https://developer.github.com/v3/pulls/#list-pull-requests + * @param {Object} options - options to filter the search + * @param {Requestable.callback} [cb] - will receive the list of PRs + * @return {Promise} - the promise for the http request + */ + listPulls(options, cb) { + options = options || {}; + return this._request('GET', `${this.__repoPath}/pulls`, options, cb); + } + + /** + * Get information about a specific pull request + * @see https://developer.github.com/v3/pulls/#get-a-single-pull-request + * @param {number} number - the PR you wish to fetch + * @param {Requestable.callback} [cb] - will receive the PR from the API + * @return {Promise} - the promise for the http request + */ + getPull(number, cb) { + return this._request('GET', `${this.__repoPath}/pulls/${number}`, null, cb); + } + + /** + * Compare two branches/commits/repositories + * @see https://developer.github.com/v3/repos/commits/#compare-two-commits + * @param {string} base - the base commit + * @param {string} head - the head commit + * @param {Requestable.callback} cb - will receive the comparison + * @return {Promise} - the promise for the http request + */ + compare(base, head, cb) { + return this._request('GET', `${this.__repoPath}/compare/${base}...${head}`, null, cb); + } + + /** + * List all the branches for the repository + * @see https://developer.github.com/v3/repos/#list-branches + * @param {Requestable.callback} cb - will receive the list of branches + * @return {Promise} - the promise for the http request + */ + listBranches(cb) { + return this._request('GET', `${this.__repoPath}/branches`, null, cb); + } + + /** + * Get a raw blob from the repository + * @see https://developer.github.com/v3/git/blobs/#get-a-blob + * @param {string} sha - the sha of the blob to fetch + * @param {Requestable.callback} cb - will receive the blob from the API + * @return {Promise} - the promise for the http request + */ + getBlob(sha, cb) { + return this._request('GET', `${this.__repoPath}/git/blobs/${sha}`, null, cb, 'raw'); + } + + /** + * Get a commit from the repository + * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit + * @param {string} branch - unused + * @param {string} sha - the sha for the commit to fetch + * @param {Requestable.callback} cb - will receive the commit data + * @return {Promise} - the promise for the http request + */ + getCommit(branch, sha, cb) { + return this._request('GET', `${this.__repoPath}/git/commits/${sha}`, null, cb); + } + + /** + * Get tha sha for a particular object in the repository. This is a convenience function + * @see https://developer.github.com/v3/repos/contents/#get-contents + * @param {string} [branch] - the branch to look in, or the repository's default branch if omitted + * @param {string} path - the path of the file or directory + * @param {Requestable.callback} cb - will receive a description of the requested object, including a `SHA` property + * @return {Promise} - the promise for the http request + */ + getSha(branch, path, cb) { + branch = branch ? `?ref=${branch}` : ''; + return this._request('GET', `${this.__repoPath}/contents/${path}${branch}`, null, cb); + } + + /** + * List the commit statuses for a particular sha, branch, or tag + * @see https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref + * @param {string} sha - the sha, branch, or tag to get statuses for + * @param {Requestable.callback} cb - will receive the list of statuses + * @return {Promise} - the promise for the http request + */ + getStatuses(sha, cb) { + return this._request('GET', `${this.__repoPath}/commits/${sha}/statuses`, null, cb); + } + + /** + * Get a description of a git tree + * @see https://developer.github.com/v3/git/trees/#get-a-tree + * @param {string} treeSHA - the SHA of the tree to fetch + * @param {Requestable.callback} cb - will receive the callback data + * @return {Promise} - the promise for the http request + */ + getTree(treeSHA, cb) { + return this._request('GET', `${this.__repoPath}/git/trees/${treeSHA}`, null, cb); + } + + /** + * Create a blob + * @see https://developer.github.com/v3/git/blobs/#create-a-blob + * @param {(string|Buffer|Blob)} content - the content to add to the repository + * @param {Requestable.callback} cb - will receive the details of the created blob + * @return {Promise} - the promise for the http request + */ + postBlob(content, cb) { + let postBody = this._getContentObject(content); + + return this._request('POST', this.__repoPath + '/git/blobs', postBody, cb); + } + + _getContentObject(content) { + if (typeof content === 'string') { + log('contet is a string'); + return { + content: Utf8.encode(content), + encoding: 'utf-8' + }; + } else if (typeof Buffer !== 'undefined' && content instanceof Buffer) { + log('We appear to be in Node'); + return { + content: content.toString('base64'), + encoding: 'base64' + }; + } else if (typeof Blob !== 'undefined' && content instanceof Blob) { + log('We appear to be in the browser'); + return { + content: Base64.encode(content), + encoding: 'base64' + }; + } else { + log(`Not sure what this content is: ${typeof content}, ${JSON.stringify(content)}`); + throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)'); + } + } + + /** + * Update a tree in Git + * @see https://developer.github.com/v3/git/trees/#create-a-tree + * @param {string} baseTreeSHA - the SHA of the tree to update + * @param {string} path - the path for the new file + * @param {string} blobSHA - the SHA for the blob to put at `path` + * @param {Requestable.callback} cb - will receive the new tree that is created + * @return {Promise} - the promise for the http request + * @deprecated use {@link Repository#postTree} instead + */ + updateTree(baseTreeSHA, path, blobSHA, cb) { + let newTree = { + 'base_tree': baseTreeSHA, + 'tree': [{ + path: path, + sha: blobSHA, + mode: '100644', + type: 'blob' + }] + }; + + return this._request('POST', `${this.__repoPath}/git/trees`, newTree, cb); + } + + /** + * Create a new tree in git + * @see https://developer.github.com/v3/git/trees/#create-a-tree + * @param {Object} tree - the tree to create + * @param {string} baseSHA - the root sha of the tree + * @param {Requestable.callback} cb - will receive the new tree that is created + * @return {Promise} - the promise for the http request + */ + postTree(tree, baseSHA, cb) { + return this._request('POST', `${this.__repoPath}/git/trees`, {tree, base_tree: baseSHA}, cb); // jscs:ignore + } + + /** + * Add a commit to the repository + * @see https://developer.github.com/v3/git/commits/#create-a-commit + * @param {string} parent - the SHA of the parent commit + * @param {Object} tree - the tree that describes this commit + * @param {string} message - the commit message + * @param {Function} cb - will receive the commit that is created + * @return {Promise} - the promise for the http request {[type]} [description] + */ + commit(parent, tree, message, cb) { + let data = { + message, + tree, + parents: [parent] + }; + + return this._request('POST', `${this.__repoPath}/git/commits`, data, cb) + .then((response) => { + this.__currentTree.sha = response.sha; // Update latest commit + return response; + }); + } + + /** + * Update a ref + * @see https://developer.github.com/v3/git/refs/#update-a-reference + * @param {string} ref - the ref to update + * @param {string} commitSHA - the SHA to point the reference to + * @param {Function} cb - will receive the updated ref back + * @return {Promise} - the promise for the http request {[type]} [description] + */ + updateHead(ref, commitSHA, cb) { + return this._request('PATCH', `${this.__repoPath}/git/refs/${ref}`, {sha: commitSHA}, cb); + } + + /** + * Get information about the repository + * @see https://developer.github.com/v3/repos/#get + * @param {Function} cb - will receive the information about the repository + * @return {Promise} - the promise for the http request {[type]} [description] + */ + show(cb) { + return this._request('GET', this.__repoPath, null, cb); + } + + /** + * List the contributors to the repository + * @see https://developer.github.com/v3/repos/#list-contributors + * @param {Function} cb - will receive the list of contributors + * @return {Promise} - the promise for the http request {[type]} [description] + */ + contributors(cb) { + + return this._request('GET', `${this.__repoPath}/stats/contributors`, null, cb); + } + + /** + * List the users who are collaborators on the repository + * @see https://developer.github.com/v3/repos/collaborators/#list-collaborators + * @param {Function} cb - will receive the list of collaborators + * @return {Promise} - the promise for the http request {[type]} [description] + */ + collaborators(cb) { + return this._request('GET', `${this.__repoPath}/collaborators`, null, cb); + } + + /** + * Check if a user is a collaborator on the repository + * @see https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator + * @param {string} username - the user to check + * @param {Function} cb - will receive true if the user is a collaborator and false if they are not + * @return {Promise} - the promise for the http request {Boolean} [description] + */ + isCollaborator(username, cb) { + return this._request('GET', `${this.__repoPath}/collaborators/${username}`, null, cb); + } + + /** + * Get the contents of a repository + * @see https://developer.github.com/v3/repos/contents/#get-contents + * @param {string} ref - the ref to check + * @param {string} path - the path containing the content to fetch + * @param {Function} cb - will receive the fetched data + * @return {Promise} - the promise for the http request {[type]} [description] + */ + contents(ref, path, cb) { + path = path ? `${encodeURI(path)}` : ''; + return this._request('GET', `${this.__repoPath}/contents/${path}`, {ref}, cb); + } + + /** + * Fork a repository + * @see https://developer.github.com/v3/repos/forks/#create-a-fork + * @param {Function} cb - will receive the information about the newly created fork + * @return {Promise} - the promise for the http request {[type]} [description] + */ + fork(cb) { + return this._request('POST', `${this.__repoPath}/forks`, null, cb); + } + + /** + * List a repository's forks + * @see https://developer.github.com/v3/repos/forks/#list-forks + * @param {Function} cb - will receive the list of repositories forked from this one + * @return {Promise} - the promise for the http request {[type]} [description] + */ + listForks(cb) { + return this._request('GET', `${this.__repoPath}/forks`, null, cb); + } + + /** + * Create a new branch from an existing branch. + * @param {string} [oldBranch=master] - the name of the existing branch + * @param {string} newBranch - the name of the new branch + * @param {Function} cb - will receive the commit data for the head of the new branch + * @return {Promise} - the promise for the http request {[type]} [description] + */ + branch(oldBranch, newBranch, cb) { + if (typeof newBranch === 'function') { + cb = newBranch; + newBranch = oldBranch; + oldBranch = 'master'; + } + + return this.getRef(`heads/${oldBranch}`) + .then((response) => { + let sha = response.data.object.sha; + return this.createRef({sha, ref: `refs/heads/${newBranch}`}, cb); + }); + } + + /** + * Create a new pull request + * @see https://developer.github.com/v3/pulls/#create-a-pull-request + * @param {Object} options - the pull request description + * @param {Function} cb - will receive the new pull request + * @return {Promise} - the promise for the http request {[type]} [description] + */ + createPullRequest(options, cb) { + return this._request('POST', `${this.__repoPath}/pulls`, options, cb); + } + + /** + * List the hooks for the repository + * @see https://developer.github.com/v3/repos/hooks/#list-hooks + * @param {Function} cb - will receive the list of hooks + * @return {Promise} - the promise for the http request {[type]} [description] + */ + listHooks(cb) { + return this._request('GET', `${this.__repoPath}/hooks`, null, cb); + } + + /** + * Get a hook for the repository + * @see https://developer.github.com/v3/repos/hooks/#get-single-hook + * @param {number} id - the id of the webook + * @param {Function} cb - will receive the details of the webook + * @return {Promise} - the promise for the http request {[type]} [description] + */ + getHook(id, cb) { + return this._request('GET', `${this.__repoPath}/hooks/${id}`, null, cb); + } + + /** + * Add a new hook to the repository + * @see https://developer.github.com/v3/repos/hooks/#create-a-hook + * @param {Object} options - the configuration describing the new hook + * @param {Function} cb - will receive the new webhook + * @return {Promise} - the promise for the http request {[type]} [description] + */ + createHook(options, cb) { + return this._request('POST', `${this.__repoPath}/hooks`, options, cb); + } + + /** + * Edit an existing webhook + * @see https://developer.github.com/v3/repos/hooks/#edit-a-hook + * @param {number} id - the id of the webhook + * @param {Object} options - the new description of the webhook + * @param {Function} cb - will receive the updated webhook + * @return {Promise} - the promise for the http request {[type]} [description] + */ + editHook(id, options, cb) { + return this._request('PATCH', `${this.__repoPath}/hooks/${id}`, options, cb); + } + + /** + * Delete a webhook + * @see https://developer.github.com/v3/repos/hooks/#delete-a-hook + * @param {number} id - the id of the webhook to be deleted + * @param {Function} cb - will receive true if the call is successful + * @return {Promise} - the promise for the http request {[type]} [description] + */ + deleteHook(id, cb) { + return this._request('DELETE', this.__repoPath + '/hooks/' + id, null, cb); + } + + /** + * Get the raw contents of a file in a branch + * @see https://developer.github.com/v3/repos/contents/#get-contents + * @param {string} branch - the name of the branch to read from, or the default branch if not specified + * @param {string} path - the path to read from + * @param {Function} cb - will receive the raw file contents + * @return {Promise} - the promise for the http request {[type]} [description] + */ + read(branch, path, cb) { + path = path ? encodeURI(path) : ''; + return this._request('GET', `${this.__repoPath}/contents/${path}`, {ref: branch}, cb, 'raw'); + } + + /** + * Delete a file from a branch + * @see https://developer.github.com/v3/repos/contents/#delete-a-file + * @param {string} branch - the branch to delete from, or the default branch if not specified + * @param {string} path - the path of the file to remove + * @param {Function} cb - will receive the commit in which the delete occurred + * @return {Promise} - the promise for the http request {[type]} [description] + */ + remove(branch, path, cb) { + this.getSha(branch, path) + .then((response) => { + const deleteCommit = { + message: `Delete the file at '${path}'`, + sha: response.data.sha, + branch + }; + return this._request('DELETE', `${this.__repoPath}/contents/${path}`, deleteCommit, cb); + }); + } + + // Move a file to a new location + // ------- + move(branch, path, newPath, cb) { + return this._updateTree(branch, function(err, latestCommit) { + this.getTree(latestCommit + '?recursive=true', function(err, tree) { + // Update Tree + tree.forEach(function(ref) { + if (ref.path === path) { + ref.path = newPath; + } + + if (ref.type === 'tree') { + delete ref.sha; + } + }); + + this.postTree(tree, function(err, rootTree) { + this.commit(latestCommit, rootTree, 'Deleted ' + path, function(err, commit) { + this.updateHead(branch, commit, cb); + }); + }); + }); + }); + } + + _updateTree(branch, cb) { + if (branch === this.__currentTree.branch && this.__currentTree.sha) { + return cb(null, this.__currentTree.sha); + } + + this.getRef(`heads/${branch}`, function(err, sha) { + this.__currentTree.branch = branch; + this.__currentTree.sha = sha; + cb(err, sha); + }); + } + + /** + * Write a file to the repository + * @see https://developer.github.com/v3/repos/contents/#update-a-file + * @param {string} branch - the name of the branch + * @param {string} path - the path for the file + * @param {string} content - the contents of the file + * @param {string} message - the commit message + * @param {Object} [options] + * @param {Object} [options.author] - the author of the commit + * @param {Object} [options.commit] - the committer + * @param {boolean} [options.encode] - true if the content should be base64 encoded + * @param {Function} cb - will receive the new commit + * @return {Promise} - the promise for the http request {[type]} [description] + */ + write(branch, path, content, message, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + let filePath = path ? encodeURI(path) : ''; + let shouldEncode = options.encode !== false; + let commit = { + branch, + message, + author: options.author, + committer: options.committer, + content: shouldEncode ? Base64.encode(content) : content + }; + + return this.getSha(branch, filePath) + .then((response) => { + commit.sha = response.data.sha; + return this._request('PUT', `${this.__repoPath}/contents/${filePath}`, commit, cb); + }, () => { + return this._request('PUT', `${this.__repoPath}/contents/${filePath}`, commit, cb); + }); + } + + /** + * List the commits on a repository, optionally filtering by path, author or time range + * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository + * @param {Object} [options] - options to filter by + * @param {string} [options.sha] - the SHA or branch to start from + * @param {string} [options.path] - the path to search on + * @param {string} [options.author] - the commit author + * @param {(Date|string)} [options.since] - only commits after this date will be returned + * @param {(Date|string)} [options.until] - only commits before this date will be returned + * @param {Requestable.callback} cb - will receive the list of commits found matching the criteria + * @return {Promise} - the promise for the http request + */ + getCommits(options, cb) { + options = options || {}; + + options.since = this._dateToISO(options.since); + options.until = this._dateToISO(options.until); + + return this._request('GET', `${this.__repoPath}/commits`, options, cb); + } + + /** + * Check if a repository is starred by you + * @see https://developer.github.com/v3/activity/starring/#check-if-you-are-starring-a-repository + * @param {string} owner - the owner of the repository + * @param {string} repository - the name of the repository + * @param {Requestable.callback} cb - will receive true if the repository is starred and false if the repository + * is not starred + * @return {Promise} - the promise for the http request {Boolean} [description] + */ + isStarred(owner, repository, cb) { + return this._request204or404('/user/starred/' + owner + '/' + repository, null, cb); + } + + /** + * Star a repository + * @see https://developer.github.com/v3/activity/starring/#star-a-repository + * @param {string} owner - the owner of the repository + * @param {string} repository - the repository name + * @param {Requestable.callback} cb - will receive true if the repository is starred + * @return {Promise} - the promise for the http request + */ + star(owner, repository, cb) { + return this._request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); + } + + /** + * Unstar a repository + * @see https://developer.github.com/v3/activity/starring/#unstar-a-repository + * @param {string} owner - the owner of the repository + * @param {string} repository - the repository name + * @param {Requestable.callback} cb - will receive true if the repository is unstarred + * @return {Promise} - the promise for the http request + */ + unstar(owner, repository, cb) { + return this._request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); + } + + /** + * Create a new release + * @see https://developer.github.com/v3/repos/releases/#create-a-release + * @param {Object} options - the description of the release + * @param {Requestable.callback} cb - will receive the newly created release + * @return {Promise} - the promise for the http request + */ + createRelease(options, cb) { + return this._request('POST', this.__repoPath + '/releases', options, cb); + } + + /** + * Edit a release + * @see https://developer.github.com/v3/repos/releases/#edit-a-release + * @param {string} id - the id of the release + * @param {Object} options - the description of the release + * @param {Requestable.callback} cb - will receive the modified release + * @return {Promise} - the promise for the http request + */ + editRelease(id, options, cb) { + return this._request('PATCH', this.__repoPath + '/releases/' + id, options, cb); + } + + /** + * Get information about a release + * @see https://developer.github.com/v3/repos/releases/#get-a-single-release + * @param {strign} id - the id of the release + * @param {Requestable.callback} cb - will receive the release information + * @return {Promise} - the promise for the http request + */ + getRelease(id, cb) { + return this._request('GET', this.__repoPath + '/releases/' + id, null, cb); + } + + /** + * Delete a release + * @see https://developer.github.com/v3/repos/releases/#delete-a-release + * @param {string} id - the release to be deleted + * @param {Requestable.callback} cb - will receive true if the operation is successful + * @return {Promise} - the promise for the http request + */ + deleteRelease(id, cb) { + return this._request('DELETE', this.__repoPath + '/releases/' + id, null, cb); + } +} + +module.exports = Repository; diff --git a/src/Requestable.js b/src/Requestable.js new file mode 100644 index 00000000..ae2bfa4c --- /dev/null +++ b/src/Requestable.js @@ -0,0 +1,260 @@ +/** + * @file + * @copyright 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import axios from 'axios'; +import debug from 'debug'; +import {Base64} from 'js-base64'; + +const log = debug('github:request'); + +/** + * Requestable wraps the logic for making http requests to the API + */ +class Requestable { + /** + * Either a username and password or an oauth token for Github + * @typedef {Object} Requestable.auth + * @prop {string} [username] - the Github username + * @prop {string} [password] - the user's password + * @prop {token} [token] - an OAuth token + */ + /** + * Initialize the http internals. + * @param {Requestable.auth} [auth] - the credentials to authenticate to Github. If auth is + * not provided request will be made unauthenticated + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(auth, apiBase) { + this.__apiBase = apiBase || 'https://api.github.com'; + this.__auth = { + token: auth.token, + username: auth.username, + password: auth.password + }; + + if (auth.token) { + this.__authorizationHeader = 'token ' + auth.token; + } else if (auth.username && auth.password) { + this.__authorizationHeader = 'Basic ' + Base64.encode(auth.username + ':' + auth.password); + } + } + + /** + * Compute the URL to use to make a request. + * @private + * @param {string} path - either a URL relative to the API base or an absolute URL + * @return {string} - the URL to use + */ + __getURL(path) { + let url = path; + + if (path.indexOf('//') === -1) { + url = this.__apiBase + path; + } + + let newCacheBuster = 'timestamp=' + new Date().getTime(); + return url.replace(/(timestamp=\d+)/, newCacheBuster); + } + + /** + * Compute the headers required for an API request. + * @private + * @param {boolean} raw - if the request should be treated as JSON or as a raw request + * @return {Object} - the headers to use in the request + */ + __getRequestHeaders(raw) { + let headers = { + 'Accept': raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', + 'Content-Type': 'application/json;charset=UTF-8' + }; + + if (this.__authorizationHeader) { + headers.Authorization = this.__authorizationHeader; + } + + return headers; + } + + /** + * Sets the default options for API requests + * @protected + * @param {Object} [requestOptions={}] - the current options for the request + * @return - the options to pass to the request + */ + _getOptionsWithDefaults(requestOptions = {}) { + requestOptions.type = requestOptions.type || 'all'; + requestOptions.sort = requestOptions.sort || 'updated'; + requestOptions.per_page = requestOptions.per_page || '100'; // jscs:ignore + + return requestOptions; + } + + /** + * if a `Date` is passed to this function it will be converted to an ISO string + * @param {*} date - the object to attempt to cooerce into an ISO date string + * @return {string} - the ISO representation of `date` or whatever was passed in if it was not a date + */ + _dateToISO(date) { + if (date && (date instanceof Date)) { + date = date.toISOString(); + } + + return date; + } + + /** + * A function that receives the result of the API request. + * @callback Requestable.callback + * @param {Requestable.Error} error - the error returned by the API or `null` + * @param {(Object|true)} result - the data returned by the API or `true` if the API returns `204 No Content` + * @param {Object} request - the raw {@linkcode https://github.com/mzabriskie/axios#response-schema Response} + */ + /** + * Make a request. + * @param {string} method - the method for the request (GET, PUT, POST, DELETE) + * @param {string} path - the path for the request + * @param {*} [data] - the data to send to the server. For HTTP methods that don't have a body the data + * will be sent as query parameters + * @param {Requestable.callback} [cb] - the callback for the request + * @param {boolean} [raw=false] - if the request should be sent as raw. If this is a falsy value then the + * request will be made as JSON + * @return {Promise} - the Promise for the http request + */ + _request(method, path, data, cb, raw) { + const url = this.__getURL(path); + const headers = this.__getRequestHeaders(raw); + let queryParams = {}; + + const shouldUseDataAsParams = data && (typeof data === 'object') && methodHasNoBody(method); + if (shouldUseDataAsParams) { + queryParams = data; + data = undefined; + } + + const config = { + url: url, + method: method, + headers: headers, + params: queryParams, + data: data, + responseType: raw ? 'text' : 'json' + }; + + log(`${config.method} to ${config.url}`); + const requestPromise = axios(config).catch(callbackErrorOrThrow(cb, path)); + + if (cb) { + requestPromise.then((response) => { + cb(null, response.data || true, response); + }); + } + + return requestPromise; + } + + /** + * Make a request to an endpoint the returns 204 when true and 404 when false + * @param {string} path - the path to request + * @param {Object} data - any query parameters for the request + * @param {Requestable.callback} cb - the callback that will receive `true` or `false` + * @return {Promise} - the promise for the http request + */ + _request204or404(path, data, cb) { + return this._request('GET', path, data) + .then(function success(response) { + if (cb) { + cb(null, true, response); + } + return true; + }, function failure(response) { + if (response.status === 404) { + if (cb) { + cb(null, false, response); + } + return false; + } + + if (cb) { + cb(response); + } + throw response; + }); + } + + /** + * Make a request and fetch all the available data. Github will paginate responses so for queries + * that might span multiple pages this method is preferred to {@link Requestable#request} + * @param {string} path - the path to request + * @param {Object} options - the query parameters to include + * @param {Requestable.callback} [cb] - the function to receive the data. The returned data will always be an array. + * @param {Object[]} results - the partial results. This argument is intended for interal use only. + * @return {Promise} - a promise which will resolve when all pages have been fetched + * @deprecated This will be folded into {@link Requestable#_request} in the 2.0 release. + */ + _requestAllPages(path, options, cb, results) { + results = results || []; + + return this._request('GET', path, null) + .then((response) => { + results.push.apply(results, response.data); + + const nextUrl = getNextPage(response.headers.link); + if (nextUrl) { + log(`getting next page: ${nextUrl}`); + return this._requestAllPages(nextUrl, options, cb, results); + } + + if (cb) { + cb(null, results, response); + } + + return results; + }).catch(callbackErrorOrThrow(cb, path)); + } +} + +export default Requestable; + +// ////////////////////////// // +// Private helper functions // +// ////////////////////////// // +export function buildError(path, response) { + return { + path: path, + request: response.config, + response: response, + status: response.status + }; +} + +const METHODS_WITH_NO_BODY = ['GET', 'HEAD', 'DELETE']; +function methodHasNoBody(method) { + return METHODS_WITH_NO_BODY.indexOf(method) !== -1; +} + +function getNextPage(linksHeader = '') { + const links = linksHeader.split(/\s*,\s*/); // splits and strips the urls + return links.reduce(function(nextUrl, link) { + if (link.search(/rel="next"/) !== -1) { + return (link.match(/<(.*)>/) || [])[1]; + } + + return nextUrl; + }, undefined); +} + +function callbackErrorOrThrow(cb, path) { + return function handler(response) { + log(`error making request ${response.config.method} ${response.config.url} ${JSON.stringify(response.data)}`); + let error = buildError(path, response); + if (cb) { + cb(error); + } else { + throw error; + } + }; +} diff --git a/src/Search.js b/src/Search.js new file mode 100644 index 00000000..e08a6024 --- /dev/null +++ b/src/Search.js @@ -0,0 +1,89 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; +import debug from 'debug'; +const log = debug('github:search'); + +/** + * Wrap the Search API + */ +class Search extends Requestable { + /** + * Create a Search + * @param {Object} defaults - defaults for the search + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(defaults, auth, apiBase) { + super(auth, apiBase); + this.__defaults = this._getOptionsWithDefaults(defaults); + } + + /** + * Perform a search on the GitHub API + * @private + * @param {string} path - the scope of the search + * @param {Object} [withOptions] - additional parameters for the search + * @param {Requestable.callback} [cb] - will receive the results of the search + * @return {Promise} - the promise for the http request + */ + _search(path, withOptions = {}, cb = undefined) { + let requestOptions = {}; + Object.keys(this.__defaults).forEach((prop) => requestOptions[prop] = this.__defaults[prop]); + Object.keys(withOptions).forEach((prop) => requestOptions[prop] = withOptions[prop]); + + log(`searching ${path} with options:`, requestOptions); + return this._request('GET', `/search/${path}`, requestOptions, cb); + } + + /** + * Search in repositories + * @see https://developer.github.com/v3/search/#search-repositories + * @param {Object} [options] - additional parameters for the search + * @param {Requestable.callback} [cb] - will receive the results of the search + * @return {Promise} - the promise for the http request + */ + repositories(options, cb) { + return this._search('repositories', options, cb); + } + + /** + * Search amongst code + * @see https://developer.github.com/v3/search/#search-code + * @param {Object} [options] - additional parameters for the search + * @param {Requestable.callback} [cb] - will receive the results of the search + * @return {Promise} - the promise for the http request + */ + code(options, cb) { + return this._search('code', options, cb); + } + + /** + * Search issues + * @see https://developer.github.com/v3/search/#search-issues + * @param {Object} [options] - additional parameters for the search + * @param {Requestable.callback} [cb] - will receive the results of the search + * @return {Promise} - the promise for the http request + */ + issues(options, cb) { + return this._search('issues', options, cb); + } + + /** + * Search for users + * @see https://developer.github.com/v3/search/#search-users + * @param {Object} [options] - additional parameters for the search + * @param {Requestable.callback} [cb] - will receive the results of the search + * @return {Promise} - the promise for the http request + */ + users(options, cb) { + return this._search('users', options, cb); + } +} + +module.exports = Search; diff --git a/src/User.js b/src/User.js new file mode 100644 index 00000000..719fdc03 --- /dev/null +++ b/src/User.js @@ -0,0 +1,188 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; +import debug from 'debug'; +const log = debug('github:user'); + +/** + * A User allows scoping of API requests to a particular Github user. + */ +class User extends Requestable { + /** + * Create a User. + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(auth, apiBase) { + super(auth, apiBase); + } + + /** + * List the user's repositories + * @see https://developer.github.com/v3/repos/#list-your-repositories + * @param {Object} [options={}] - any options to refine the search + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + repos(options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + + options = this._getOptionsWithDefaults(options); + + log(`Fetching repositories with options: ${JSON.stringify(options)}`); + return this._requestAllPages('/user/repos', options, cb); + } + + /** + * List the orgs that the user belongs to + * @param {Requestable.callback} [cb] - will receive the list of organizations + * @return {Promise} - the promise for the http request + */ + orgs(cb) { + return this._request('GET', '/user/orgs', null, cb); + } + + /** + * List the user's gists + * @param {Requestable.callback} [cb] - will receive the list of gists + * @return {Promise} - the promise for the http request + */ + gists(cb) { + return this._request('GET', '/gists', null, cb); + } + + /** + * List the user's notifications + * @see https://developer.github.com/v3/activity/notifications/#list-your-notifications + * @param {Object} [options={}] - any options to refine the search + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + notifications(options, cb) { + options = options || {}; + if (typeof options === 'function') { + cb = options; + options = {}; + } + + options.since = this._dateToISO(options.since); + options.before = this._dateToISO(options.before); + + return this._request('GET', '/notifications', options, cb); + } + + /** + * Show a user + * @see https://developer.github.com/v3/users/#get-a-single-user + * @param {string} [username] - the user to show, defaults to the current user + * @param {Requestable.callback} [cb] - will receive the user's information + * @return {Promise} - the promise for the http request + */ + show(username, cb) { + if (typeof username === 'function') { + cb = username; + username = undefined; + } + const url = username ? '/users/' + username : '/user'; + + return this._request('GET', url, null, cb); + } + + /** + * Get a user's repositories + * @see https://developer.github.com/v3/repos/#list-user-repositories + * @param {string} username - the user's repositories we are interested in + * @param {Object} options - filtering options + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + userRepos(username, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + + options = this._getOptionsWithDefaults(options); + + return this._requestAllPages(`/users/${username}/repos`, options, cb); + } + + /** + * Gets the list of starred repositories for a user + * @see https://developer.github.com/v3/activity/starring/#list-repositories-being-starred + * @param {string} username - the user to query + * @param {Requestable.callback} [cb] - will receive the list of starred repositories + * @return {Promise} - the promise for the http request + */ + userStarred(username, cb) { + let requestOptions = this._getOptionsWithDefaults(); + return this._requestAllPages(`/users/${username}/starred`, requestOptions, cb); + } + + /** + * List a user's gists + * @see https://developer.github.com/v3/gists/#list-a-users-gists + * @param {string} username - the user's gists to list + * @param {Requestable.callback} [cb] - receives the list of gists + * @return {Promise} - the promise for the http request + */ + userGists(username, cb) { + return this._request('GET', `/users/${username}/gists`, null, cb); + } + + /** + * List the repositories in an organization + * @see https://developer.github.com/v3/repos/#list-organization-repositories + * @param {string} orgname - the name of the organization + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + orgRepos(orgname, cb) { + let requestOptions = this._getOptionsWithDefaults({direction: 'desc'}); + + return this._requestAllPages(`/orgs/${orgname}/repos`, requestOptions, cb); + } + + /** + * Follow a user + * @see https://developer.github.com/v3/users/followers/#follow-a-user + * @param {string} username - the user to follow + * @param {Requestable.callback} [cb] - will receive true if the request succeeds + * @return {Promise} - the promise for the http request + */ + follow(username, cb) { + return this._request('PUT', `/user/following/${username}`, null, cb); + } + + /** + * Unfollow a user + * @see https://developer.github.com/v3/users/followers/#follow-a-user + * @param {string} username - the user to unfollow + * @param {Requestable.callback} [cb] - receives true if the request succeeds + * @return {Promise} - the promise for the http request + */ + unfollow(username, cb) { + return this._request('DELETE', `/user/following/${username}`, null, cb); + } + + /** + * Create a new user repository + * @see https://developer.github.com/v3/repos/#create + * @param {object} options - the repository definition + * @param {Requestable.callback} [cb] - will receive the API response + * @return {Promise} - the promise for the http request + */ + createRepo(options, cb) { + return this._request('POST', '/user/repos', options, cb); + } +} + +module.exports = User; diff --git a/src/github.js b/src/github.js index 3fa635d2..80eee152 100644 --- a/src/github.js +++ b/src/github.js @@ -1,1164 +1,103 @@ -/*! - * @overview Github.js - * - * @copyright (c) 2013 Michael Aufreiter, Development Seed - * Github.js is freely distributable. - * - * @license Licensed under BSD-3-Clause-Clear - * - * For all details and documentation: - * http://substance.io/michael/github +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. */ -'use strict'; -var Utf8 = require('utf8'); -var axios = require('axios'); -var Base64 = require('base-64'); -var Promise = require('es6-promise'); +import Gist from './Gist'; +import User from './User'; +import Issue from './Issue'; +import Search from './Search'; +import RateLimit from './RateLimit'; +import Repository from './Repository'; +import Organization from './Organization'; -function b64encode(string) { - return Base64.encode(Utf8.encode(string)); -} - -if (Promise.polyfill) { - Promise.polyfill(); -} - -// Initial Setup -// ------------- - -function Github(options) { - options = options || {}; - - var API_URL = options.apiUrl || 'https://api.github.com'; - - var _request = Github._request = function _request(method, path, data, cb, raw) { - function getURL() { - var url = path.indexOf('//') >= 0 ? path : API_URL + path; - - url += ((/\?/).test(url) ? '&' : '?'); - - if (data && typeof data === 'object' && ['GET', 'HEAD', 'DELETE'].indexOf(method) > -1) { - for(var param in data) { - if (data.hasOwnProperty(param)) { - url += '&' + encodeURIComponent(param) + '=' + encodeURIComponent(data[param]); - } - } - } - - return url.replace(/(×tamp=\d+)/, '') + - (typeof window !== 'undefined' ? '×tamp=' + new Date().getTime() : ''); - } - - var config = { - headers: { - Accept: raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', - 'Content-Type': 'application/json;charset=UTF-8' - }, - method: method, - data: data ? data : {}, - url: getURL() - }; - - if ((options.token) || (options.username && options.password)) { - config.headers.Authorization = options.token ? - 'token ' + options.token : - 'Basic ' + b64encode(options.username + ':' + options.password); - } - - return axios(config) - .then(function(response) { - cb( - null, - response.data || true, - response - ); - }, function(response) { - if (response.status === 304) { - cb( - null, - response.data || true, - response - ); - } else { - cb({ - path: path, - request: response, - error: response.status - }); - } - }); - }; - - var _requestAllPages = Github._requestAllPages = function _requestAllPages(path, singlePage, cb) { - var results = []; - - (function iterate() { - _request('GET', path, null, function(err, res, xhr) { - if (err) { - return cb(err); - } - - if (!(res instanceof Array)) { - res = [res]; - } - - results.push.apply(results, res); - - var next = (xhr.headers.link || '') - .split(',') - .filter(function(link) { - return /rel="next"/.test(link); - }) - .map(function(link) { - return (/<(.*)>/.exec(link) || [])[1]; - }) - .pop(); - - if (!next || singlePage) { - cb(err, results, xhr); - } else { - path = next; - iterate(); - } - }); - })(); - }; - - // User API - // ======= - - Github.User = function() { - this.repos = function(options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - options = options || {}; - - var url = '/user/repos'; - var params = []; - - params.push('type=' + encodeURIComponent(options.type || 'all')); - params.push('sort=' + encodeURIComponent(options.sort || 'updated')); - params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore - - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } - - url += '?' + params.join('&'); - - _requestAllPages(url, !!options.page, cb); - }; - - // List user organizations - // ------- - - this.orgs = function(cb) { - _request('GET', '/user/orgs', null, cb); - }; - - // List authenticated user's gists - // ------- - - this.gists = function(cb) { - _request('GET', '/gists', null, cb); - }; - - // List authenticated user's unread notifications - // ------- - - this.notifications = function(options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - options = options || {}; - var url = '/notifications'; - var params = []; - - if (options.all) { - params.push('all=true'); - } - - if (options.participating) { - params.push('participating=true'); - } - - if (options.since) { - var since = options.since; - - if (since.constructor === Date) { - since = since.toISOString(); - } - - params.push('since=' + encodeURIComponent(since)); - } - - if (options.before) { - var before = options.before; - - if (before.constructor === Date) { - before = before.toISOString(); - } - - params.push('before=' + encodeURIComponent(before)); - } - - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } - - if (params.length > 0) { - url += '?' + params.join('&'); - } - - _request('GET', url, null, cb); - }; - - // Show user information - // ------- - - this.show = function(username, cb) { - var command = username ? '/users/' + username : '/user'; - - _request('GET', command, null, cb); - }; - - // List user repositories - // ------- - - this.userRepos = function(username, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - var url = '/users/' + username + '/repos'; - var params = []; - - params.push('type=' + encodeURIComponent(options.type || 'all')); - params.push('sort=' + encodeURIComponent(options.sort || 'updated')); - params.push('per_page=' + encodeURIComponent(options.per_page || '100')); // jscs:ignore - - if (options.page) { - params.push('page=' + encodeURIComponent(options.page)); - } - - url += '?' + params.join('&'); - - _requestAllPages(url, !!options.page, cb); - }; - - // List user starred repositories - // ------- - - this.userStarred = function(username, cb) { - // Github does not always honor the 1000 limit so we want to iterate over the data set. - var request = '/users/' + username + '/starred?type=all&per_page=100'; - - _requestAllPages(request, false, cb); - }; - - // List a user's gists - // ------- - - this.userGists = function(username, cb) { - _request('GET', '/users/' + username + '/gists', null, cb); - }; - - // List organization repositories - // ------- - - this.orgRepos = function(orgname, cb) { - // Github does not always honor the 1000 limit so we want to iterate over the data set. - var request = '/orgs/' + orgname + '/repos?type=all&&page_num=100&sort=updated&direction=desc'; - - _requestAllPages(request, false, cb); - }; - - this.follow = function(username, cb) { - _request('PUT', '/user/following/' + username, null, cb); - }; - - // Unfollow user - // ------- - - this.unfollow = function(username, cb) { - _request('DELETE', '/user/following/' + username, null, cb); - }; - - // Create a repo - // ------- - this.createRepo = function(options, cb) { - _request('POST', '/user/repos', options, cb); - }; - }; +/** + * GitHub encapsulates the functionality to create various API wrapper objects. + */ +class GitHub { + /** + * Create a new GitHub. + * @param {Requestable.auth} [auth] - the credentials to authenticate to Github. If auth is + * not provided requests will be made unauthenticated + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(auth, apiBase = 'https://api.github.com') { + this.__apiBase = apiBase; + this.__auth = auth || {}; + } - Github.Organization = function() { - // Create an Organization repo - // ------- - this.createRepo = function(options, cb) { - _request('POST', '/orgs/' + options.orgname + '/repos', options, cb); - }; - }; + /** + * Create a new Gist wrapper + * @param {number} id - the id for the gist, leave undefined when creating a new gist + */ + getGist(id) { + return new Gist(id, this.__auth, this.__apiBase); + } - // Repository API - // ======= + /** + * Create a new User wrapper + * @return {User} + */ + getUser() { + return new User(this.__auth, this.__apiBase); + } - Github.Repository = function(options) { - var repo = options.name; - var user = options.user; - var fullname = options.fullname; + /** + * Create a new Organization wrapper + * @return {Organization} + */ + getOrg() { + return new Organization(this.__auth, this.__apiBase); + } - var that = this; - var repoPath; + /** + * Create a new Repository wrapper + * @param {string} user - the user who owns the respository + * @param {string} repo - the name of the repository + * @return {Repository} + */ + getRepo(user, repo) { + return new Repository(this._getFullName(user, repo), this.__auth, this.__apiBase); + } - if (fullname) { - repoPath = '/repos/' + fullname; - } else { - repoPath = '/repos/' + user + '/' + repo; - } + /** + * Create a new Issue wrapper + * @param {string} user - the user who owns the respository + * @param {string} repo - the name of the repository + * @return {Issue} + */ + getIssues(user, repo) { + return new Issue(this._getFullName(user, repo), this.__auth, this.__apiBase); + } - var currentTree = { - branch: null, - sha: null - }; + /** + * Create a new Search wrapper + * @param {string} query - the query to search for + * @return {Search} + */ + search(query) { + return new Search(query, this.__auth, this.__apiBase); + } - // Uses the cache if branch has not been changed - // ------- + /** + * Create a new RateLimit wrapper + * @return {RateLimit} + */ + getRateLimit() { + return new RateLimit(this.__auth, this.__apiBase); + } - function updateTree(branch, cb) { - if (branch === currentTree.branch && currentTree.sha) { - return cb(null, currentTree.sha); - } + _getFullName(user, repo) { + let fullname = user; - that.getRef('heads/' + branch, function(err, sha) { - currentTree.branch = branch; - currentTree.sha = sha; - cb(err, sha); - }); + if (repo) { + fullname = `${user}/${repo}`; } - // Get a particular reference - // ------- - - this.getRef = function(ref, cb) { - _request('GET', repoPath + '/git/refs/' + ref, null, function(err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.object.sha, xhr); - }); - }; - - // Create a new reference - // -------- - // - // { - // "ref": "refs/heads/my-new-branch-name", - // "sha": "827efc6d56897b048c772eb4087f854f46256132" - // } - - this.createRef = function(options, cb) { - _request('POST', repoPath + '/git/refs', options, cb); - }; - - // Delete a reference - // -------- - // - // Repo.deleteRef('heads/gh-pages') - // repo.deleteRef('tags/v1.0') - - this.deleteRef = function(ref, cb) { - _request('DELETE', repoPath + '/git/refs/' + ref, options, cb); - }; - - // Delete a repo - // -------- - - this.deleteRepo = function(cb) { - _request('DELETE', repoPath, options, cb); - }; - - // List all tags of a repository - // ------- - - this.listTags = function(cb) { - _request('GET', repoPath + '/tags', null, cb); - }; - - // List all pull requests of a respository - // ------- - - this.listPulls = function(options, cb) { - options = options || {}; - var url = repoPath + '/pulls'; - var params = []; - - if (typeof options === 'string') { - // Backward compatibility - params.push('state=' + options); - } else { - if (options.state) { - params.push('state=' + encodeURIComponent(options.state)); - } - - if (options.head) { - params.push('head=' + encodeURIComponent(options.head)); - } - - if (options.base) { - params.push('base=' + encodeURIComponent(options.base)); - } - - if (options.sort) { - params.push('sort=' + encodeURIComponent(options.sort)); - } - - if (options.direction) { - params.push('direction=' + encodeURIComponent(options.direction)); - } - - if (options.page) { - params.push('page=' + options.page); - } - - if (options.per_page) { - params.push('per_page=' + options.per_page); - } - } - - if (params.length > 0) { - url += '?' + params.join('&'); - } - - _request('GET', url, null, cb); - }; - - // Gets details for a specific pull request - // ------- - - this.getPull = function(number, cb) { - _request('GET', repoPath + '/pulls/' + number, null, cb); - }; - - // Retrieve the changes made between base and head - // ------- - - this.compare = function(base, head, cb) { - _request('GET', repoPath + '/compare/' + base + '...' + head, null, cb); - }; - - // List all branches of a repository - // ------- - - this.listBranches = function(cb) { - _request('GET', repoPath + '/git/refs/heads', null, function(err, heads, xhr) { - if (err) { - return cb(err); - } - - heads = heads.map(function(head) { - return head.ref.replace(/^refs\/heads\//, ''); - }); - - cb(null, heads, xhr); - }); - }; - - // Retrieve the contents of a blob - // ------- - - this.getBlob = function(sha, cb) { - _request('GET', repoPath + '/git/blobs/' + sha, null, cb, 'raw'); - }; - - // For a given file path, get the corresponding sha (blob for files, tree for dirs) - // ------- - - this.getCommit = function(branch, sha, cb) { - _request('GET', repoPath + '/git/commits/' + sha, null, cb); - }; - - // For a given file path, get the corresponding sha (blob for files, tree for dirs) - // ------- - - this.getSha = function(branch, path, cb) { - if (!path || path === '') { - return that.getRef('heads/' + branch, cb); - } - - _request('GET', repoPath + '/contents/' + path + (branch ? '?ref=' + branch : ''), - null, function(err, pathContent, xhr) { - if (err) { - return cb(err); - } - - cb(null, pathContent.sha, xhr); - }); - }; - - // Get the statuses for a particular SHA - // ------- - - this.getStatuses = function(sha, cb) { - _request('GET', repoPath + '/statuses/' + sha, null, cb); - }; - - // Retrieve the tree a commit points to - // ------- - - this.getTree = function(tree, cb) { - _request('GET', repoPath + '/git/trees/' + tree, null, function(err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.tree, xhr); - }); - }; - - // Post a new blob object, getting a blob SHA back - // ------- - - this.postBlob = function(content, cb) { - if (typeof content === 'string') { - content = { - content: Utf8.encode(content), - encoding: 'utf-8' - }; - } else { - if (typeof Buffer !== 'undefined' && content instanceof Buffer) { - // When we're in Node - content = { - content: content.toString('base64'), - encoding: 'base64' - }; - } else if (typeof Blob !== 'undefined' && content instanceof Blob) { - content = { - content: b64encode(content), - encoding: 'base64' - }; - } else { - throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)'); - } - } - - _request('POST', repoPath + '/git/blobs', content, function(err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.sha, xhr); - }); - }; - - // Update an existing tree adding a new blob object getting a tree SHA back - // ------- - - this.updateTree = function(baseTree, path, blob, cb) { - var data = { - base_tree: baseTree, - tree: [ - { - path: path, - mode: '100644', - type: 'blob', - sha: blob - } - ] - }; - - _request('POST', repoPath + '/git/trees', data, function(err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.sha, xhr); - }); - }; - - // Post a new tree object having a file path pointer replaced - // with a new blob SHA getting a tree SHA back - // ------- - - this.postTree = function(tree, cb) { - _request('POST', repoPath + '/git/trees', { - tree: tree - }, function(err, res, xhr) { - if (err) { - return cb(err); - } - - cb(null, res.sha, xhr); - }); - }; - - // Create a new commit object with the current commit SHA as the parent - // and the new tree SHA, getting a commit SHA back - // ------- - - this.commit = function(parent, tree, message, cb) { - var user = new Github.User(); - - user.show(null, function(err, userData) { - if (err) { - return cb(err); - } - - var data = { - message: message, - author: { - name: options.user, - email: userData.email - }, - parents: [ - parent - ], - tree: tree - }; - - _request('POST', repoPath + '/git/commits', data, function(err, res, xhr) { - if (err) { - return cb(err); - } - - currentTree.sha = res.sha; // Update latest commit - - cb(null, res.sha, xhr); - }); - }); - }; - - // Update the reference of your head to point to the new commit SHA - // ------- - - this.updateHead = function(head, commit, cb) { - _request('PATCH', repoPath + '/git/refs/heads/' + head, { - sha: commit - }, cb); - }; - - // Show repository information - // ------- - - this.show = function(cb) { - _request('GET', repoPath, null, cb); - }; - - // Show repository contributors - // ------- - - this.contributors = function(cb, retry) { - retry = retry || 1000; - var that = this; - - _request('GET', repoPath + '/stats/contributors', null, function(err, data, xhr) { - if (err) { - return cb(err); - } - - if (xhr.status === 202) { - setTimeout( - function() { - that.contributors(cb, retry); - }, - retry - ); - } else { - cb(err, data, xhr); - } - }); - }; - - // Show repository collaborators - // ------- - - this.collaborators = function(cb) { - _request('GET', repoPath + '/collaborators', null, cb); - }; - - // Check whether user is a collaborator on the repository - // ------- - - this.isCollaborator = function(username, cb) { - _request('GET', repoPath + '/collaborators/' + username, null, cb); - }; - - // Get contents - // -------- - - this.contents = function(ref, path, cb) { - path = encodeURI(path); - _request('GET', repoPath + '/contents' + (path ? '/' + path : ''), { - ref: ref - }, cb); - }; - - // Fork repository - // ------- - - this.fork = function(cb) { - _request('POST', repoPath + '/forks', null, cb); - }; - - // List forks - // -------- - - this.listForks = function(cb) { - _request('GET', repoPath + '/forks', null, cb); - }; - - // Branch repository - // -------- - - this.branch = function(oldBranch, newBranch, cb) { - if (arguments.length === 2 && typeof arguments[1] === 'function') { - cb = newBranch; - newBranch = oldBranch; - oldBranch = 'master'; - } - - this.getRef('heads/' + oldBranch, function(err, ref) { - if (err && cb) { - return cb(err); - } - - that.createRef({ - ref: 'refs/heads/' + newBranch, - sha: ref - }, cb); - }); - }; - - // Create pull request - // -------- - - this.createPullRequest = function(options, cb) { - _request('POST', repoPath + '/pulls', options, cb); - }; - - // List hooks - // -------- - - this.listHooks = function(cb) { - _request('GET', repoPath + '/hooks', null, cb); - }; - - // Get a hook - // -------- - - this.getHook = function(id, cb) { - _request('GET', repoPath + '/hooks/' + id, null, cb); - }; - - // Create a hook - // -------- - - this.createHook = function(options, cb) { - _request('POST', repoPath + '/hooks', options, cb); - }; - - // Edit a hook - // -------- - - this.editHook = function(id, options, cb) { - _request('PATCH', repoPath + '/hooks/' + id, options, cb); - }; - - // Delete a hook - // -------- - - this.deleteHook = function(id, cb) { - _request('DELETE', repoPath + '/hooks/' + id, null, cb); - }; - - // Read file at given path - // ------- - - this.read = function(branch, path, cb) { - _request('GET', repoPath + '/contents/' + encodeURI(path) + (branch ? '?ref=' + branch : ''), - null, cb, true); - }; - - // Remove a file - // ------- - - this.remove = function(branch, path, cb) { - that.getSha(branch, path, function(err, sha) { - if (err) { - return cb(err); - } - - _request('DELETE', repoPath + '/contents/' + path, { - message: path + ' is removed', - sha: sha, - branch: branch - }, cb); - }); - }; - - // Alias for repo.remove for backwards comapt. - // ------- - this.delete = this.remove; - - // Move a file to a new location - // ------- - - this.move = function(branch, path, newPath, cb) { - updateTree(branch, function(err, latestCommit) { - that.getTree(latestCommit + '?recursive=true', function(err, tree) { - // Update Tree - tree.forEach(function(ref) { - if (ref.path === path) { - ref.path = newPath; - } - - if (ref.type === 'tree') { - delete ref.sha; - } - }); - - that.postTree(tree, function(err, rootTree) { - that.commit(latestCommit, rootTree, 'Deleted ' + path, function(err, commit) { - that.updateHead(branch, commit, cb); - }); - }); - }); - }); - }; - - // Write file contents to a given branch and path - // ------- - - this.write = function(branch, path, content, message, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - that.getSha(branch, encodeURI(path), function(err, sha) { - var writeOptions = { - message: message, - content: typeof options.encode === 'undefined' || options.encode ? b64encode(content) : content, - branch: branch, - committer: options && options.committer ? options.committer : undefined, - author: options && options.author ? options.author : undefined - }; - - // If no error, we set the sha to overwrite an existing file - if (!(err && err.error !== 404)) { - writeOptions.sha = sha; - } - - _request('PUT', repoPath + '/contents/' + encodeURI(path), writeOptions, cb); - }); - }; - - // List commits on a repository. Takes an object of optional parameters: - // sha: SHA or branch to start listing commits from - // path: Only commits containing this file path will be returned - // author: Only commits by this author will be returned. Its value can be the GitHub login or the email address - // since: ISO 8601 date - only commits after this date will be returned - // until: ISO 8601 date - only commits before this date will be returned - // ------- - - this.getCommits = function(options, cb) { - options = options || {}; - var url = repoPath + '/commits'; - var params = []; - - if (options.sha) { - params.push('sha=' + encodeURIComponent(options.sha)); - } - - if (options.path) { - params.push('path=' + encodeURIComponent(options.path)); - } - - if (options.author) { - params.push('author=' + encodeURIComponent(options.author)); - } - - if (options.since) { - var since = options.since; - - if (since.constructor === Date) { - since = since.toISOString(); - } - - params.push('since=' + encodeURIComponent(since)); - } - - if (options.until) { - var until = options.until; - - if (until.constructor === Date) { - until = until.toISOString(); - } - - params.push('until=' + encodeURIComponent(until)); - } - - if (options.page) { - params.push('page=' + options.page); - } - - if (options.perpage) { - params.push('per_page=' + options.perpage); - } - - if (params.length > 0) { - url += '?' + params.join('&'); - } - - _request('GET', url, null, cb); - }; - - // Check if a repository is starred. - // -------- - - this.isStarred = function(owner, repository, cb) { - _request('GET', '/user/starred/' + owner + '/' + repository, null, cb); - }; - - // Star a repository. - // -------- - - this.star = function(owner, repository, cb) { - _request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); - }; - - // Unstar a repository. - // -------- - - this.unstar = function(owner, repository, cb) { - _request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); - }; - - // Create a new release - // -------- - - this.createRelease = function(options, cb) { - _request('POST', repoPath + '/releases', options, cb); - }; - - // Edit a release - // -------- - - this.editRelease = function(id, options, cb) { - _request('PATCH', repoPath + '/releases/' + id, options, cb); - }; - - // Get a single release - // -------- - - this.getRelease = function(id, cb) { - _request('GET', repoPath + '/releases/' + id, null, cb); - }; - - // Remove a release - // -------- - - this.deleteRelease = function(id, cb) { - _request('DELETE', repoPath + '/releases/' + id, null, cb); - }; - }; - - // Gists API - // ======= - - Github.Gist = function(options) { - var id = options.id; - var gistPath = '/gists/' + id; - - // Read the gist - // -------- - - this.read = function(cb) { - _request('GET', gistPath, null, cb); - }; - - // Create the gist - // -------- - // { - // "description": "the description for this gist", - // "public": true, - // "files": { - // "file1.txt": { - // "content": "String file contents" - // } - // } - // } - - this.create = function(options, cb) { - _request('POST', '/gists', options, cb); - }; - - // Delete the gist - // -------- - - this.delete = function(cb) { - _request('DELETE', gistPath, null, cb); - }; - - // Fork a gist - // -------- - - this.fork = function(cb) { - _request('POST', gistPath + '/fork', null, cb); - }; - - // Update a gist with the new stuff - // -------- - - this.update = function(options, cb) { - _request('PATCH', gistPath, options, cb); - }; - - // Star a gist - // -------- - - this.star = function(cb) { - _request('PUT', gistPath + '/star', null, cb); - }; - - // Untar a gist - // -------- - - this.unstar = function(cb) { - _request('DELETE', gistPath + '/star', null, cb); - }; - - // Check if a gist is starred - // -------- - - this.isStarred = function(cb) { - _request('GET', gistPath + '/star', null, cb); - }; - }; - - // Issues API - // ========== - - Github.Issue = function(options) { - var path = '/repos/' + options.user + '/' + options.repo + '/issues'; - - this.create = function(options, cb) { - _request('POST', path, options, cb); - }; - - this.list = function(options, cb) { - var query = []; - - Object.keys(options).forEach(function(option) { - query.push(encodeURIComponent(option) + '=' + encodeURIComponent(options[option])); - }); - - _requestAllPages(path + '?' + query.join('&'), !!options.page, cb); - }; - - this.comment = function(issue, comment, cb) { - _request('POST', issue.comments_url, { - body: comment - }, cb); - }; - - this.edit = function(issue, options, cb) { - _request('PATCH', path + '/' + issue, options, cb); - }; - - this.get = function(issue, cb) { - _request('GET', path + '/' + issue, null, cb); - }; - }; - - // Search API - // ========== - - Github.Search = function(options) { - var path = '/search/'; - var query = '?q=' + options.query; - - this.repositories = function(options, cb) { - _request('GET', path + 'repositories' + query, options, cb); - }; - - this.code = function(options, cb) { - _request('GET', path + 'code' + query, options, cb); - }; - - this.issues = function(options, cb) { - _request('GET', path + 'issues' + query, options, cb); - }; - - this.users = function(options, cb) { - _request('GET', path + 'users' + query, options, cb); - }; - }; - - // Rate Limit API - // ========== - - Github.RateLimit = function() { - this.getRateLimit = function(cb) { - _request('GET', '/rate_limit', null, cb); - }; - }; - - return Github; -} - -// Top Level API -// ------- - -Github.getIssues = function(user, repo) { - return new Github.Issue({ - user: user, - repo: repo - }); -}; - -Github.getRepo = function(user, repo) { - if (!repo) { - return new Github.Repository({ - fullname: user - }); - } else { - return new Github.Repository({ - user: user, - name: repo - }); + return fullname; } -}; - -Github.getUser = function() { - return new Github.User(); -}; - -Github.getOrg = function() { - return new Github.Organization(); -}; - -Github.getGist = function(id) { - return new Github.Gist({ - id: id - }); -}; - -Github.getSearch = function(query) { - return new Github.Search({ - query: query - }); -}; - -Github.getRateLimit = function() { - return new Github.RateLimit(); -}; +} -module.exports = Github; +module.exports = GitHub; diff --git a/test/helpers.js b/test/helpers/callbacks.js similarity index 55% rename from test/helpers.js rename to test/helpers/callbacks.js index d85f3f94..bd7d0143 100644 --- a/test/helpers.js +++ b/test/helpers/callbacks.js @@ -1,49 +1,43 @@ -'use strict'; +import expect from 'must'; -var expect = require('must'); -var STANDARD_DELAY = 200; // 200ms between nested calls to the API so things settle +const STANDARD_DELAY = 200; // 200ms between nested calls to the API so things settle -function assertSuccessful(done, cb) { - return function(err, res, xhr) { +export function assertSuccessful(done, cb) { + return function successCallback(err, res, xhr) { try { expect(err).not.to.exist(); expect(res).to.exist(); expect(xhr).to.be.an.object(); if (cb) { - setTimeout(function () { + setTimeout(function() { cb(err, res, xhr); }, STANDARD_DELAY); } else { done(); } - } catch(e) { + } catch (e) { done(e); } }; } -function assertFailure(done, cb) { - return function(err) { +export function assertFailure(done, cb) { + return function failureCallback(err) { try { expect(err).to.exist(); expect(err).to.have.ownProperty('path'); expect(err.request).to.exist(); if (cb) { - setTimeout(function () { + setTimeout(function() { cb(err); }, STANDARD_DELAY); } else { done(); } - } catch(e) { + } catch (e) { done(e); } }; } - -module.exports = { - assertSuccessful: assertSuccessful, - assertFailure: assertFailure -}; diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 00000000..4944011d --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1,3 @@ +--compilers js:babel-register +--timeout 15000 +--slow 5000 diff --git a/test/test.auth.js b/test/test.auth.js index 09d0cc0b..a24b5dbd 100644 --- a/test/test.auth.js +++ b/test/test.auth.js @@ -1,14 +1,12 @@ -'use strict'; +import expect from 'must'; -var Github = require('../src/github.js'); - -var expect = require('must'); -var testUser = require('./fixtures/user.json'); -var assertSuccessful = require('./helpers').assertSuccessful; -var assertFailure = require('./helpers').assertFailure; +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import {assertSuccessful, assertFailure} from './helpers/callbacks'; describe('Github', function() { - var github, user; + let github; + let user; describe('with authentication', function() { before(function() { @@ -42,7 +40,7 @@ describe('Github', function() { }); it('should read public information', function(done) { - var gist = github.getGist('f1c0f84e53aa6b98ec03'); + let gist = github.getGist('f1c0f84e53aa6b98ec03'); gist.read(function(err, res, xhr) { try { @@ -51,14 +49,13 @@ describe('Github', function() { expect(xhr).to.be.an.object(); done(); - } catch(e) { + } catch (e) { try { if (err && err.request.headers['x-ratelimit-remaining'] === '0') { done(); - return; } - } catch(e2) { + } catch (e2) { done(e); } @@ -86,8 +83,8 @@ describe('Github', function() { it('should fail authentication and return err', function(done) { user.notifications(assertFailure(done, function(err) { - expect(err.error).to.be.equal(401, 'Return 401 status for bad auth'); - expect(err.request.data.message).to.equal('Bad credentials'); + expect(err.status).to.be.equal(401, 'Return 401 status for bad auth'); + expect(err.response.data.message).to.equal('Bad credentials'); done(); })); diff --git a/test/test.gist.js b/test/test.gist.js index 2f8bc8a4..880d42bc 100644 --- a/test/test.gist.js +++ b/test/test.gist.js @@ -1,14 +1,14 @@ -'use strict'; +import expect from 'must'; -var Github = require('../src/github.js'); +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import testGist from './fixtures/gist.json'; +import {assertSuccessful} from './helpers/callbacks'; -var expect = require('must'); -var testUser = require('./fixtures/user.json'); -var testGist = require('./fixtures/gist.json'); -var assertSuccessful = require('./helpers').assertSuccessful; - -describe('Github.Gist', function() { - var gist, gistId, github; +describe('Gist', function() { + let gist; + let gistId; + let github; before(function() { github = new Github({ diff --git a/test/test.issue.js b/test/test.issue.js index 1b8e8058..b8ff0ad1 100644 --- a/test/test.issue.js +++ b/test/test.issue.js @@ -1,13 +1,13 @@ -'use strict'; +import expect from 'must'; -var Github = require('../src/github.js'); +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import {assertSuccessful} from './helpers/callbacks'; -var expect = require('must'); -var testUser = require('./fixtures/user.json'); -var assertSuccessful = require('./helpers').assertSuccessful; - -describe('Github.Issue', function() { - var github, remoteIssues, remoteIssue; +describe('Issue', function() { + let github; + let remoteIssues; + let remoteIssue; before(function() { github = new Github({ @@ -45,15 +45,15 @@ describe('Github.Issue', function() { }); it('should create issue', function(done) { - var issue = { + const newIssue = { title: 'New issue', body: 'New issue body' }; - remoteIssues.create(issue, assertSuccessful(done, function(err, issue) { + remoteIssues.create(newIssue, assertSuccessful(done, function(err, issue) { expect(issue).to.have.own('url'); - expect(issue).to.have.own('title', issue.title); - expect(issue).to.have.own('body', issue.body); + expect(issue).to.have.own('title', newIssue.title); + expect(issue).to.have.own('body', newIssue.body); done(); })); @@ -68,7 +68,7 @@ describe('Github.Issue', function() { }); it('should edit issues title', function(done) { - var newProps = { + const newProps = { title: 'Edited title' }; diff --git a/test/test.org.js b/test/test.org.js index 1c7b1a3a..b687d4c6 100644 --- a/test/test.org.js +++ b/test/test.org.js @@ -1,24 +1,29 @@ -'use strict'; +// jscs:disable requireCamelCaseOrUpperCaseIdentifiers +import expect from 'must'; -var Github = require('../src/github.js'); -var testUser = require('./user.json'); -var github, organization; +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import {assertSuccessful} from './helpers/callbacks'; + +describe('Organization', function() { + let github; + let organization; -describe('Github.Organization', function() { before(function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, auth: 'basic' }); + organization = github.getOrg(); }); it('should create an organisation repo', function(done) { - var repoTest = Math.floor(Math.random() * 100000); - var options = { + const testRepoName = Math.floor(Math.random() * 100000).toString(); + const options = { orgname: testUser.ORGANIZATION, - name: repoTest, + name: testRepoName, description: 'test create organization repo', homepage: 'https://github.com/', private: false, @@ -27,13 +32,10 @@ describe('Github.Organization', function() { has_downloads: true }; - organization.createRepo(options, function(err, res, xhr) { - should.not.exist(err); - xhr.should.be.instanceof(XMLHttpRequest); - res.name.should.equal(repoTest.toString()); - res.full_name.should.equal(testUser.ORGANIZATION + '/' + repoTest.toString()); - + organization.createRepo(options, assertSuccessful(done, function(err, repo) { + expect(repo.name).to.equal(testRepoName); + expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); done(); - }); + })); }); }); diff --git a/test/test.rate-limit.js b/test/test.rate-limit.js index b3d85fb4..6fa75dc4 100644 --- a/test/test.rate-limit.js +++ b/test/test.rate-limit.js @@ -1,13 +1,12 @@ -'use strict'; +import expect from 'must'; -var Github = require('../src/github.js'); +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import {assertSuccessful} from './helpers/callbacks'; -var expect = require('must'); -var testUser = require('./fixtures/user.json'); -var assertSuccessful = require('./helpers').assertSuccessful; - -describe('Github.RateLimit', function() { - var github, rateLimit; +describe('RateLimit', function() { + let github; + let rateLimit; before(function() { github = new Github({ @@ -21,7 +20,7 @@ describe('Github.RateLimit', function() { it('should get rate limit', function(done) { rateLimit.getRateLimit(assertSuccessful(done, function(err, rateInfo) { - var rate = rateInfo.rate; + const rate = rateInfo.rate; expect(rate).to.be.an.object(); expect(rate).to.have.own('limit'); diff --git a/test/test.repo.js b/test/test.repo.js index e291c000..5e2a780e 100644 --- a/test/test.repo.js +++ b/test/test.repo.js @@ -1,24 +1,24 @@ -'use strict'; - -var Github = require('../src/github.js'); - -var expect = require('must'); -var testUser = require('./fixtures/user.json'); -var loadImage = require('./fixtures/imageBlob'); -var assertSuccessful = require('./helpers').assertSuccessful; -var assertFailure = require('./helpers').assertFailure; - -describe('Github.Repository', function() { - var github, remoteRepo, user, imageB64, imageBlob; - var testRepoName = Math.floor(Math.random() * 100000).toString(); - var v10_4sha = '20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; - var statusUrl = 'https://api.github.com/repos/michael/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; +import expect from 'must'; + +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import loadImage from './fixtures/imageBlob'; +import {assertSuccessful, assertFailure} from './helpers/callbacks'; + +describe('Repository', function() { + let github; + let remoteRepo; + let user; + let imageB64; + let imageBlob; + const testRepoName = Math.floor(Math.random() * 100000).toString(); + const v10SHA = '20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; + const statusUrl = 'https://api.github.com/repos/michael/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; before(function(done) { github = new Github({ username: testUser.USERNAME, - password: testUser.PASSWORD, - auth: 'basic' + password: testUser.PASSWORD }); loadImage(function(b64, blob) { @@ -42,8 +42,8 @@ describe('Github.Repository', function() { }); it('should get blob', function(done) { - remoteRepo.getSha('master', 'README.md', assertSuccessful(done, function(err, sha) { - remoteRepo.getBlob(sha, assertSuccessful(done, function(err, content) { + remoteRepo.getSha('master', 'README.md', assertSuccessful(done, function(err, response) { + remoteRepo.getBlob(response.sha, assertSuccessful(done, function(err, content) { expect(content).to.be.include('# Github.js'); done(); @@ -55,7 +55,7 @@ describe('Github.Repository', function() { remoteRepo.contents('master', '', assertSuccessful(done, function(err, contents) { expect(contents).to.be.an.array(); - var readme = contents.filter(function(content) { + const readme = contents.filter(function(content) { return content.path === 'README.md'; }); @@ -67,7 +67,8 @@ describe('Github.Repository', function() { }); it('should get tree', function(done) { - remoteRepo.getTree('master', assertSuccessful(done, function(err, tree) { + remoteRepo.getTree('master', assertSuccessful(done, function(err, response) { + let {tree} = response; expect(tree).to.be.an.array(); expect(tree.length).to.be.above(0); @@ -100,26 +101,26 @@ describe('Github.Repository', function() { }); it('should list commits with all options', function(done) { - var sinceDate = new Date(2015, 0, 1); - var untilDate = new Date(2016, 0, 20); - var options = { + const since = new Date(2015, 0, 1); + const until = new Date(2016, 0, 20); + const options = { sha: 'master', path: 'test', author: 'AurelioDeRosa', - since: sinceDate, - until: untilDate + since, + until }; remoteRepo.getCommits(options, assertSuccessful(done, function(err, commits) { expect(commits).to.be.an.array(); expect(commits.length).to.be.above(0); - var commit = commits[0]; - var commitDate = new Date(commit.commit.author.date); + const commit = commits[0]; + const commitDate = new Date(commit.commit.author.date); expect(commit).to.have.own('commit'); expect(commit.author).to.have.own('login', 'AurelioDeRosa'); - expect(commitDate.getTime()).to.be.between(sinceDate.getTime(), untilDate.getTime()); + expect(commitDate.getTime()).to.be.between(since.getTime(), until.getTime()); done(); })); }); @@ -129,7 +130,7 @@ describe('Github.Repository', function() { expect(contributors).to.be.an.array(); expect(contributors.length).to.be.above(1); - var contributor = contributors[0]; + const contributor = contributors[0]; expect(contributor).to.have.own('author'); expect(contributor).to.have.own('total'); @@ -139,21 +140,6 @@ describe('Github.Repository', function() { })); }); - it('should show repo collaborators', function(done) { - remoteRepo.collaborators(assertSuccessful(done, function(err, collaborators) { - expect(collaborators).to.be.an.array(); - expect(collaborators).to.have.length(1); - - var collaborator = collaborators[0]; - - expect(collaborator).to.have.own('login', testUser.USERNAME); - expect(collaborator).to.have.own('id'); - expect(collaborator).to.have.own('permissions'); - - done(); - })); - }); - // @TODO repo.branch, repo.pull it('should list repo branches', function(done) { @@ -169,7 +155,7 @@ describe('Github.Repository', function() { }); it('should get commit from repo', function(done) { - remoteRepo.getCommit('master', v10_4sha, assertSuccessful(done, function(err, commit) { + remoteRepo.getCommit('master', v10SHA, assertSuccessful(done, function(err, commit) { expect(commit.message).to.equal('v0.10.4'); expect(commit.author.date).to.equal('2015-03-20T17:01:42Z'); @@ -178,11 +164,11 @@ describe('Github.Repository', function() { }); it('should get statuses for a SHA from a repo', function(done) { - remoteRepo.getStatuses(v10_4sha, assertSuccessful(done, function(err, statuses) { + remoteRepo.getStatuses(v10SHA, assertSuccessful(done, function(err, statuses) { expect(statuses).to.be.an.array(); expect(statuses.length).to.equal(6); - var correctUrls = statuses.every(function(status) { + const correctUrls = statuses.every(function(status) { return status.url === statusUrl; }); @@ -197,7 +183,7 @@ describe('Github.Repository', function() { }); it('should get a repo by fullname', function(done) { - var repoByName = github.getRepo('michael/github'); + const repoByName = github.getRepo('michael/github'); repoByName.show(assertSuccessful(done, function(err, repo) { expect(repo).to.have.own('full_name', 'michael/github'); @@ -206,13 +192,9 @@ describe('Github.Repository', function() { })); }); - it('should test whether user is collaborator', function(done) { - remoteRepo.isCollaborator(testUser.USERNAME, assertSuccessful(done)); - }); - it('should check if the repo is starred', function(done) { - remoteRepo.isStarred('michael', 'github', assertFailure(done, function(err) { - expect(err.error).to.be(404); + remoteRepo.isStarred('michael', 'github', assertSuccessful(done, function(err, result) { + expect(result).to.equal(false); done(); })); @@ -220,27 +202,28 @@ describe('Github.Repository', function() { }); describe('creating/modifiying', function() { - var fileName = 'test.md'; + const fileName = 'test.md'; - var initialText = 'This is a test.'; - var initialMessage = 'Test file create.'; + const initialText = 'This is a test.'; + const initialMessage = 'This is my 44 character long commit message.'; - var updatedText = 'This file has been updated.'; - var updatedMessage = 'Test file update.'; + const updatedText = 'This file has been updated.'; + const updatedMessage = 'This is my 51 character long update commit message.'; - var fileToDelete = 'tmp.md'; - var deleteMessage = 'Removing file'; + const fileToDelete = 'tmp.md'; + const deleteMessage = 'This is my 51 character long delete commit message.'; - var unicodeFileName = '\u4E2D\u6587\u6D4B\u8BD5.md'; - var unicodeText = '\u00A1\u00D3i de m\u00ED, que verg\u00FCenza!'; - var unicodeMessage = 'Such na\u00EFvet\u00E9\u2026'; + const unicodeFileName = '\u4E2D\u6587\u6D4B\u8BD5.md'; + const unicodeText = '\u00A1\u00D3i de m\u00ED, que verg\u00FCenza!'; + const unicodeMessage = 'Such na\u00EFvet\u00E9\u2026'; - var imageFileName = 'image.png'; + const imageFileName = 'image.png'; - var releaseTag = 'foo'; - var releaseName = 'My awesome release'; - var releaseBody = 'Foo bar bazzy baz'; - var sha, releaseId; + const releaseTag = 'foo'; + const releaseName = 'My awesome release'; + const releaseBody = 'This is my 49 character long release description.'; + let sha; + let releaseId; before(function() { user = github.getUser(); @@ -253,7 +236,7 @@ describe('Github.Repository', function() { }); it('should create repo', function(done) { - var repoDef = { + const repoDef = { name: testRepoName }; @@ -264,6 +247,25 @@ describe('Github.Repository', function() { })); }); + it('should show repo collaborators', function(done) { + remoteRepo.collaborators(assertSuccessful(done, function(err, collaborators) { + expect(collaborators).to.be.an.array(); + expect(collaborators).to.have.length(1); + + const collaborator = collaborators[0]; + + expect(collaborator).to.have.own('login', testUser.USERNAME); + expect(collaborator).to.have.own('id'); + expect(collaborator).to.have.own('permissions'); + + done(); + })); + }); + + it('should test whether user is collaborator', function(done) { + remoteRepo.isCollaborator(testUser.USERNAME, assertSuccessful(done)); + }); + it('should write to repo', function(done) { remoteRepo.write('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { remoteRepo.read('master', fileName, assertSuccessful(done, function(err, fileText) { @@ -274,14 +276,21 @@ describe('Github.Repository', function() { })); }); + it('should create a new branch', function(done) { + remoteRepo.branch('master', 'dev', assertSuccessful(done, function(err, branch) { + expect(branch).to.have.property('ref', 'refs/heads/dev'); + expect(branch.object).to.have.property('sha'); + + done(); + })); + }); + it('should write to repo branch', function(done) { - remoteRepo.branch('master', 'dev', assertSuccessful(done, function() { - remoteRepo.write('dev', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { - remoteRepo.read('dev', fileName, assertSuccessful(done, function(err, fileText) { - expect(fileText).to.be(updatedText); + remoteRepo.write('dev', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.read('dev', fileName, assertSuccessful(done, function(err, fileText) { + expect(fileText).to.be(updatedText); - done(); - })); + done(); })); })); }); @@ -300,24 +309,19 @@ describe('Github.Repository', function() { }); it('should submit a pull request', function(done) { - var baseBranch = 'master'; - var headBranch = 'pull-request'; - var pullRequestTitle = 'Test pull request'; - var pullRequestBody = 'This is a test pull request'; - var pr = { - title: pullRequestTitle, - body: pullRequestBody, - base: baseBranch, - head: headBranch - }; - - remoteRepo.branch(baseBranch, headBranch, assertSuccessful(done, function() { - remoteRepo.write(headBranch, fileName, updatedText, updatedMessage, assertSuccessful(done, function() { - remoteRepo.createPullRequest(pr, assertSuccessful(done, function(err, pullRequest) { + const base = 'master'; + const head = 'pull-request'; + const title = 'Test pull request'; + const body = 'This is a test pull request'; + const prSpec = {title, body, base, head}; + + remoteRepo.branch(base, head, assertSuccessful(done, function() { + remoteRepo.write(head, fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.createPullRequest(prSpec, assertSuccessful(done, function(err, pullRequest) { expect(pullRequest).to.have.own('number'); expect(pullRequest.number).to.be.above(0); - expect(pullRequest).to.have.own('title', pullRequestTitle); - expect(pullRequest).to.have.own('body', pullRequestBody); + expect(pullRequest).to.have.own('title', title); + expect(pullRequest).to.have.own('body', body); done(); })); @@ -330,12 +334,12 @@ describe('Github.Repository', function() { }); it('should create ref on repo', function(done) { - remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, sha) { - var refSpec = { - ref: 'refs/heads/new-test-branch', sha: sha + remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, refSpec) { + let newRef = { + ref: 'refs/heads/new-test-branch', + sha: refSpec.object.sha }; - - remoteRepo.createRef(refSpec, assertSuccessful(done)); + remoteRepo.createRef(newRef, assertSuccessful(done)); })); }); @@ -348,15 +352,15 @@ describe('Github.Repository', function() { }); it('should list pulls on repo', function(done) { - var options = { + const filterOpts = { state: 'all', sort: 'updated', direction: 'desc', page: 1, - per_page: 10 + per_page: 10 // jscs:ignore }; - remoteRepo.listPulls(options, assertSuccessful(done, function(err, pullRequests) { + remoteRepo.listPulls(filterOpts, assertSuccessful(done, function(err, pullRequests) { expect(pullRequests).to.be.an.array(); expect(pullRequests).to.have.length(1); @@ -365,7 +369,7 @@ describe('Github.Repository', function() { }); it('should get pull requests on repo', function(done) { - var repo = github.getRepo('michael', 'github'); + const repo = github.getRepo('michael', 'github'); repo.getPull(153, assertSuccessful(done, function(err, pr) { expect(pr).to.have.own('title'); @@ -382,28 +386,20 @@ describe('Github.Repository', function() { })); }); - it('should use repo.delete as an alias for repo.remove', function(done) { - remoteRepo.write('master', fileToDelete, initialText, deleteMessage, assertSuccessful(done, function() { - remoteRepo.delete('master', fileToDelete, assertSuccessful(done)); - })); - }); - it('should write author and committer to repo', function(done) { - var options = { - author: { - name: 'Author Name', email: 'author@example.com' - }, - committer: { - name: 'Committer Name', email: 'committer@example.com' - } + const options = { + author: {name: 'Author Name', email: 'author@example.com'}, + committer: {name: 'Committer Name', email: 'committer@example.com'} }; remoteRepo.write('dev', fileName, initialText, initialMessage, options, assertSuccessful(done, function(e, r) { remoteRepo.getCommit('dev', r.commit.sha, assertSuccessful(done, function(err, commit) { - expect(commit.author.name).to.be('Author Name'); - expect(commit.author.email).to.be('author@example.com'); - expect(commit.committer.name).to.be('Committer Name'); - expect(commit.committer.email).to.be('committer@example.com'); + const author = commit.author; + const committer = commit.committer; + expect(author.name).to.be('Author Name'); + expect(author.email).to.be('author@example.com'); + expect(committer.name).to.be('Committer Name'); + expect(committer.email).to.be('committer@example.com'); done(); })); @@ -425,12 +421,13 @@ describe('Github.Repository', function() { }); it('should pass a regression test for _request (#14)', function(done) { - remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, sha) { - var refSpec = { - ref: 'refs/heads/testing-14', sha: sha + remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, refSpec) { + let newRef = { + ref: 'refs/heads/testing-14', + sha: refSpec.object.sha }; - remoteRepo.createRef(refSpec, assertSuccessful(done, function() { + remoteRepo.createRef(newRef, assertSuccessful(done, function() { // Triggers GET: // https://api.github.com/repos/michael/cmake_cdt7_stalled/git/refs/heads/prose-integration remoteRepo.getRef('heads/master', assertSuccessful(done, function() { @@ -447,7 +444,7 @@ describe('Github.Repository', function() { }); it('should be able to write an image to the repo', function(done) { - var opts = { + const opts = { encode: false }; @@ -475,9 +472,8 @@ describe('Github.Repository', function() { it('should unstar the repo', function(done) { remoteRepo.unstar(testUser.USERNAME, testRepoName, assertSuccessful(done, function() { - remoteRepo.isStarred(testUser.USERNAME, testRepoName, assertFailure(done, function(err) { - expect(err.error).to.be(404); - + remoteRepo.isStarred(testUser.USERNAME, testRepoName, assertSuccessful(done, function(_, isStarred) { + expect(isStarred).to.be(false); done(); })); })); @@ -485,31 +481,30 @@ describe('Github.Repository', function() { it('should fail on broken commit', function(done) { remoteRepo.commit('broken-parent-hash', 'broken-tree-hash', initialMessage, assertFailure(done, function(err) { - expect(err.error).to.be(422); - + expect(err.status).to.be(422); done(); })); }); it('should create a release', function(done) { - var options = { - tag_name: releaseTag, - target_commitish: sha + const releaseDef = { + tag_name: releaseTag, // jscs:ignore + target_commitish: sha // jscs:ignore }; - remoteRepo.createRelease(options, assertSuccessful(done, function(err, res) { + remoteRepo.createRelease(releaseDef, assertSuccessful(done, function(err, res) { releaseId = res.id; done(); })); }); it('should edit a release', function(done) { - var options = { + const releaseDef = { name: releaseName, body: releaseBody }; - remoteRepo.editRelease(releaseId, options, assertSuccessful(done, function(err, release) { + remoteRepo.editRelease(releaseId, releaseDef, assertSuccessful(done, function(err, release) { expect(release).to.have.own('name', releaseName); expect(release).to.have.own('body', releaseBody); diff --git a/test/test.search.js b/test/test.search.js index bb416851..6838b13e 100644 --- a/test/test.search.js +++ b/test/test.search.js @@ -1,12 +1,9 @@ -'use strict'; +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import {assertSuccessful} from './helpers/callbacks'; -var Github = require('../src/github.js'); - -var testUser = require('./fixtures/user.json'); -var assertSuccessful = require('./helpers').assertSuccessful; - -describe('Github.Search', function() { - var github; +describe('Search', function() { + let github; before(function() { github = new Github({ @@ -17,29 +14,37 @@ describe('Github.Search', function() { }); it('should search repositories', function(done) { - var search = github.getSearch('tetris+language:assembly&sort=stars&order=desc'); - var options = null; + let search = github.search({ + q: 'tetris language:assembly', + sort: 'stars', + order: 'desc' + }); + let options = undefined; search.repositories(options, assertSuccessful(done)); }); it('should search code', function(done) { - var search = github.getSearch('addClass+in:file+language:js+repo:jquery/jquery'); - var options = null; + let search = github.search({q: 'addClass in:file language:js repo:jquery/jquery'}); + let options = undefined; search.code(options, assertSuccessful(done)); }); it('should search issues', function(done) { - var search = github.getSearch('windows+label:bug+language:python+state:open&sort=created&order=asc'); - var options = null; + let search = github.search({ + q: 'windows label:bug language:python state:open', + sort: 'created', + order: 'asc' + }); + let options = undefined; search.issues(options, assertSuccessful(done)); }); it('should search users', function(done) { - var search = github.getSearch('tom+repos:%3E42+followers:%3E1000'); - var options = null; + let search = github.search({q: 'tom repos:>42 followers:>1000'}); + let options = undefined; search.users(options, assertSuccessful(done)); }); diff --git a/test/test.user.js b/test/test.user.js index a00e2784..c3e584e0 100644 --- a/test/test.user.js +++ b/test/test.user.js @@ -1,10 +1,8 @@ -'use strict'; +import expect from 'must'; -var Github = require('../src/github.js'); - -var expect = require('must'); -var testUser = require('./fixtures/user.json'); -var assertSuccessful = require('./helpers').assertSuccessful; +import Github from '../src/Github'; +import testUser from './fixtures/user.json'; +import {assertSuccessful} from './helpers/callbacks'; function assertArray(done) { return assertSuccessful(done, function(err, result) { @@ -13,8 +11,9 @@ function assertArray(done) { }); } -describe('Github.User', function() { - var github, user; +describe('User', function() { + let github; + let user; before(function() { github = new Github({ @@ -30,14 +29,14 @@ describe('Github.User', function() { }); it('should get user repos with options', function(done) { - var options = { + const filterOpts = { type: 'owner', sort: 'updated', per_page: 90, // jscs:ignore page: 10 }; - user.repos(options, assertArray(done)); + user.repos(filterOpts, assertArray(done)); }); it('should get user orgs', function(done) { @@ -53,14 +52,14 @@ describe('Github.User', function() { }); it('should get user notifications with options', function(done) { - var options = { + const filterOpts = { all: true, participating: true, since: '2015-01-01T00:00:00Z', before: '2015-02-01T00:00:00Z' }; - user.notifications(options, assertArray(done)); + user.notifications(filterOpts, assertArray(done)); }); it('should show user', function(done) { @@ -72,14 +71,14 @@ describe('Github.User', function() { }); it('should show user\'s repos with options', function(done) { - var options = { + const filterOpts = { type: 'owner', sort: 'updated', per_page: 90, // jscs:ignore page: 1 }; - user.userRepos('aendrew', options, assertArray(done)); + user.userRepos('aendrew', filterOpts, assertArray(done)); }); it('should show user\'s starred repos', function(done) { From 7da4d28c510526ba1597f12a060a414173a685f5 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 26 Apr 2016 07:48:03 -0500 Subject: [PATCH 007/137] docs: Update Readme and Changelog --- CHANGELOG.md | 58 +++++++++------------------------------------------- README.md | 6 ++---- 2 files changed, 12 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d61c1c43..464524fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,54 +3,16 @@ ### 1.0.0 Complete rewrite in ES2015. -* Renamed many of the APIs for better internal consistency. * Promise-ified the API -* Modularized code to potentially allow for custom builds -* Refactored tests to run primarially in mocha * Auto-generation of documentation +* Modularized codebase +* Refactored tests to run primarially in mocha -### 0.10.X - -Create and delete repositories -Repos - getCommit - -### 0.9.X - -Paging (introduced at tail end of 0.8.X, note: different callbacks for success & errors now) - -### 0.8.X - -Fixes and tweaks, simpler auth, CI tests, node.js support, Raw+JSON, UTF8, plus: -Users - follow, unfollow, get info, notifications -Gists - create -Issues - get -Repos - createRepo, deleteRepo, createBranch, star, unstar, isStarred, getCommits, listTags, listPulls, getPull, compare -Hooks - listHooks, getHook, createHook, editHook, deleteHook - -### 0.7.X - -Switched to a native `request` implementation (thanks @mattpass). Adds support for GitHub gists, forks and pull requests. - -### 0.6.X - -Adds support for organizations and fixes an encoding issue. - -### 0.5.X - -Smart caching of latest commit sha. - -### 0.4.X - -Added support for [OAuth](http://developer.github.com/v3/oauth/). - -### 0.3.X - -Support for Moving and removing files. - -### 0.2.X - -Consider commit messages. - -### 0.1.X - -Initial version. +#### Breaking changes +* Search API no longer takes a string it now takes an object with properties `q`, `sort`, and `order` to make + the parts of the query easier to grok and to better match GitHub's API +* `Repository.getSha` now returns the same data as GitHub's API. If the reqeusted object is not a directory then the + response will contain a property `SHA`, and if the reqeusted object is a directory then the contents of the + directory are `stat`ed +* `Repository.getRef` now returns the `refspec` from GitHub's API. +* `Repository.delete` has been removed diff --git a/README.md b/README.md index 3a5b2090..6e35c4ca 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,11 @@ Github.js provides a minimal higher-level wrapper around Github's API. It was co [Prose][prose], a content editor for GitHub. ## Installation -Github.js is available from `npm` or `bower`. +Github.js is available from `npm` or (soon) [cdnjs][cdnjs]. ``` npm install github-api ``` -``` -bower install github-api -``` ## Compatibility @@ -40,6 +37,7 @@ as well. In the meantime, we recommend you to take a look at other projects of t **TODO** +[cdnjs]: https://cdnjs.com/ [codecov]: https://codecov.io/github/michael/github?branch=master [travis-ci]: https://travis-ci.org/michael/github [gitter]: https://gitter.im/michael/github From efffc70efcab4d511d45d76232b552f3ed54a99b Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 26 Apr 2016 07:48:35 -0500 Subject: [PATCH 008/137] chore: Update infrastructure and rename/move js files --- .editorconfig | 2 +- .eslintrc | 26 ++++ .gitignore | 9 +- .jscsrc | 146 ++---------------- .jsdoc.json | 23 +++ .jshintrc | 65 -------- .travis.yml | 4 +- gulpfile.babel.js | 87 +++++++++++ gulpfile.js | 113 -------------- {src => lib}/Gist.js | 0 {src => lib}/Issue.js | 0 {src => lib}/Organization.js | 0 {src => lib}/Ratelimit.js | 0 {src => lib}/Repository.js | 0 {src => lib}/Requestable.js | 0 {src => lib}/Search.js | 0 {src => lib}/User.js | 0 {src => lib}/github.js | 0 test/mocha.opts => mocha.opts | 0 package.json | 65 +++++--- test/.eslintrc | 7 + test/.jshintrc | 9 -- test/{test.auth.js => auth.spec.js} | 0 test/{test.gist.js => gist.spec.js} | 0 test/{test.issue.js => issue.spec.js} | 0 test/{test.org.js => organization.spec.js} | 0 ...{test.rate-limit.js => rate-limit.spec.js} | 0 test/{test.repo.js => repository.spec.js} | 0 test/{test.search.js => search.spec.js} | 0 test/{test.user.js => user.spec.js} | 0 30 files changed, 207 insertions(+), 349 deletions(-) create mode 100644 .eslintrc create mode 100644 .jsdoc.json delete mode 100644 .jshintrc create mode 100644 gulpfile.babel.js delete mode 100644 gulpfile.js rename {src => lib}/Gist.js (100%) rename {src => lib}/Issue.js (100%) rename {src => lib}/Organization.js (100%) rename {src => lib}/Ratelimit.js (100%) rename {src => lib}/Repository.js (100%) rename {src => lib}/Requestable.js (100%) rename {src => lib}/Search.js (100%) rename {src => lib}/User.js (100%) rename {src => lib}/github.js (100%) rename test/mocha.opts => mocha.opts (100%) create mode 100644 test/.eslintrc delete mode 100644 test/.jshintrc rename test/{test.auth.js => auth.spec.js} (100%) rename test/{test.gist.js => gist.spec.js} (100%) rename test/{test.issue.js => issue.spec.js} (100%) rename test/{test.org.js => organization.spec.js} (100%) rename test/{test.rate-limit.js => rate-limit.spec.js} (100%) rename test/{test.repo.js => repository.spec.js} (100%) rename test/{test.search.js => search.spec.js} (100%) rename test/{test.user.js => user.spec.js} (100%) diff --git a/.editorconfig b/.editorconfig index 321b598f..693a0400 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,7 +8,7 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[*.yml] +[*.yml,package.json] indent_size = 2 [*.md] diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..5a061f61 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,26 @@ +{ + "extends": "eslint:recommended", + + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + + "rules": { + "no-bitwise": 1, + "eqeqeq": 2, + "guard-for-in": 2, + "no-extend-native": 2 + }, + + "env": { + "browser": true, + "node": true + }, + + "globals": { + "require": false, + "define": false, + "escape": false + } +} diff --git a/.gitignore b/.gitignore index 23179d4d..ca27d6c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,11 @@ -.DS_Store -.idea -node_modules/ +docs/ +dist/ coverage/ +node_modules/ +.nyc_output/ +.DS_Store +.idea .zuulrc npm-debug.log sauce.json diff --git a/.jscsrc b/.jscsrc index c9ed804b..0a7963d2 100644 --- a/.jscsrc +++ b/.jscsrc @@ -1,142 +1,16 @@ { - "disallowDanglingUnderscores": false, - "disallowIdentifierNames": [], - "disallowImplicitTypeConversion": [], - "disallowKeywordsOnNewLine": [ - "catch", - "else" - ], - "disallowKeywords": [ - "void", - "with" - ], - "disallowMixedSpacesAndTabs": true, - "disallowMultipleLineBreaks": true, - "disallowMultipleLineStrings": true, - "disallowMultipleSpaces": true, - "disallowMultipleVarDecl": "exceptUndefined", - "disallowNewlineBeforeBlockStatements": true, - "disallowPaddingNewlinesBeforeKeywords": [ - "case", - "typeof" - ], - "disallowPaddingNewlinesInBlocks": true, - "disallowQuotedKeysInObjects": true, - "disallowSpaceAfterKeywords": [ - "catch", - "for", - "switch", - "while" - ], - "disallowSpaceAfterObjectKeys": true, - "disallowSpaceAfterPrefixUnaryOperators": true, - "disallowSpaceBeforePostfixUnaryOperators": true, - "disallowSpacesInCallExpression": true, - "disallowSpacesInsideParentheses": true, - "disallowTrailingComma": true, - "disallowTrailingWhitespace": true, - "disallowYodaConditions": true, + "preset": "google", + + "disallowVar": true, + "jsDoc": { + "checkParamExistence": true, + "checkParamNames": true, + "checkTypes": true, + "requireParamTypes": true, + "requireHyphenBeforeDescription": true, + }, "maximumLineLength": 120, - "requireBlocksOnNewline": true, - "requireCamelCaseOrUpperCaseIdentifiers": false, - "requireCapitalizedComments": { - "allExcept": [ - "exported", - "global", - "jshint" - ] - }, - "requireCapitalizedConstructors": true, - "requireCommaBeforeLineBreak": true, - "requireCurlyBraces": [ - "catch", - "do", - "else", - "for", - "if", - "try", - "while" - ], - "requireDollarBeforejQueryAssignment": true, - "requireDotNotation": true, - "requireKeywordsOnNewLine": [ - "break", - "case", - "default" - ], - "requireLineBreakAfterVariableAssignment": true, - "requireOperatorBeforeLineBreak": true, - "requirePaddingNewLineAfterVariableDeclaration": true, - "requirePaddingNewLinesAfterBlocks": { - "allExcept": [ - "inArrayExpressions", - "inCallExpressions", - "inProperties" - ] - }, - "requirePaddingNewLinesAfterUseStrict": true, - "requirePaddingNewLinesBeforeExport": true, - "requirePaddingNewlinesBeforeKeywords": [ - "do", - "for", - "function", - "if", - "return", - "switch", - "try", - "void", - "while", - "with" - ], - "requirePaddingNewLinesBeforeLineComments": { - "allExcept": "firstAfterCurly" - }, - "requirePaddingNewLinesInObjects": true, - "requireParenthesesAroundIIFE": true, - "requireSemicolons": true, - "requireSpaceAfterBinaryOperators": true, - "requireSpaceAfterKeywords": [ - "case", - "do", - "else", - "if", - "return", - "try", - "typeof" - ], "requireSpaceAfterLineComment": true, - "requireSpaceBeforeBinaryOperators": true, - "requireSpaceBeforeBlockStatements": true, - "requireSpaceBeforeKeywords": [ - "catch", - "else" - ], - "requireSpaceBeforeObjectValues": true, - "requireSpaceBetweenArguments": true, - "requireSpacesInAnonymousFunctionExpression": { - "beforeOpeningCurlyBrace": true - }, - "requireSpacesInConditionalExpression": true, - "requireSpacesInForStatement": true, - "requireSpacesInFunctionDeclaration": { - "beforeOpeningCurlyBrace": true - }, - "requireSpacesInFunctionExpression": { - "beforeOpeningCurlyBrace": true - }, - "requireSpacesInFunction": { - "beforeOpeningCurlyBrace": true - }, - "requireSpacesInNamedFunctionExpression": { - "beforeOpeningCurlyBrace": true - }, "safeContextKeyword": ["that"], - "validateAlignedFunctionParameters": true, "validateIndentation": 3, - "validateLineBreaks": "LF", - "validateNewlineAfterArrayElements": { - "maximum": 3 - }, - "validateParameterSeparator": ", ", - "validateQuoteMarks": "'" } diff --git a/.jsdoc.json b/.jsdoc.json new file mode 100644 index 00000000..62df38bb --- /dev/null +++ b/.jsdoc.json @@ -0,0 +1,23 @@ +{ + "tags": { + "dictionaries": ["jsdoc"] + }, + "source": { + "include": ["src", "package.json", "README.md"], + "includePattern": ".js$", + "excludePattern": "(node_modules/|docs)" + }, + "plugins": [ + "plugins/markdown" + ], + "templates": { + "cleverLinks": false, + "monospaceLinks": true + }, + "opts": { + "destination": "./docs/", + "encoding": "utf8", + "recurse": true, + "template": "./node_modules/minami" + } +} diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 509fef3c..00000000 --- a/.jshintrc +++ /dev/null @@ -1,65 +0,0 @@ -{ - "maxerr" : 50, - - // Enforcing - "bitwise" : true, - "camelcase" : false, - "curly" : false, - "eqeqeq" : true, - "forin" : true, - "freeze" : true, - "immed" : false, - "indent" : 2, - "latedef" : false, - "newcap" : false, - "noarg" : true, - "noempty" : true, - "nonbsp" : true, - "nonew" : false, - "plusplus" : false, - "quotmark" : false, - "undef" : true, - "unused" : true, - "strict" : true, - "maxparams" : false, - "maxdepth" : false, - "maxstatements" : false, - "maxcomplexity" : false, - "maxlen" : false, - - // Relaxing - "asi" : false, - "boss" : false, - "debug" : false, - "eqnull" : false, - "es5" : false, - "esnext" : false, - "moz" : false, - "evil" : false, - "expr" : false, - "funcscope" : false, - "globalstrict" : false, - "iterator" : false, - "lastsemic" : false, - "laxbreak" : false, - "laxcomma" : false, - "loopfunc" : false, - "multistr" : false, - "noyield" : false, - "notypeof" : false, - "proto" : false, - "scripturl" : false, - "shadow" : false, - "sub" : false, - "supernew" : false, - "validthis" : false, - - "browser" : true, - "devel" : true, - "node" : true, - - "globals" : { - "require" : false, - "define" : false - } -} diff --git a/.travis.yml b/.travis.yml index 67df9cb4..c15e8047 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,9 @@ cache: - node_modules before_install: - - npm i -g npm@^3.3.0 + - npm install -g npm@latest script: - gulp lint - gulp test:mocha - - npm run codecov + # - npm run codecov # disabled temporarialy while I work out how to generate accurate coverage of ES2015 code diff --git a/gulpfile.babel.js b/gulpfile.babel.js new file mode 100644 index 00000000..6b92e2c2 --- /dev/null +++ b/gulpfile.babel.js @@ -0,0 +1,87 @@ +import gulp from 'gulp'; +import jscs from 'gulp-jscs'; +import eslint from 'gulp-eslint'; +import stylish from 'gulp-jscs-stylish'; + +import babel from 'gulp-babel'; +import rename from 'gulp-rename'; + +import browserify from 'browserify'; +import buffer from 'vinyl-buffer'; +import del from 'del'; +import path from 'path'; +import {Promise} from 'es6-promise'; +import source from 'vinyl-source-stream'; +import sourcemaps from 'gulp-sourcemaps'; +import uglify from 'gulp-uglify'; + +const ALL_SOURCES = [ + path.join(__dirname, '/*.js'), + path.join(__dirname, '/src/*.js'), + path.join(__dirname, '/test/*.js') +]; + +gulp.task('lint', function() { + const opts = { + base: './' + }; + return gulp.src(ALL_SOURCES, opts) + .pipe(eslint()) + .pipe(jscs()) + .pipe(stylish.combineWithHintResults()) + .pipe(stylish()) + ; +}); + +gulp.task('clean', function() { + return Promise.all([del('dist/'), del('coverage/')]); +}); + +const browserifyConfig = { + debug: true, + entries: 'src/Github.js', + standalone: 'Github' +}; +gulp.task('build', function() { + browserify(browserifyConfig) + .transform('babelify') + .bundle() + .pipe(source('Github.js')) + .pipe(buffer()) + .pipe(sourcemaps.init({ + loadMaps: true + })) + .pipe(uglify()) + .pipe(rename({ + extname: '.bundle.min.js' + })) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('dist')) + ; + + browserify(browserifyConfig) + .transform('babelify') + .bundle() + .pipe(source('Github.js')) + .pipe(buffer()) + .pipe(sourcemaps.init({ + loadMaps: true + })) + .pipe(rename({ + extname: '.bundle.js' + })) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('dist')) + ; + + return gulp.src('src/*.js') + .pipe(babel()) + .pipe(sourcemaps.init()) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('dist/components')) + ; +}); + +gulp.task('default', ['clean'], function() { + gulp.start('lint', 'test:mocha', 'build'); +}); diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index 801abddc..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict'; - -var gulp = require('gulp'); - -var babel = require('gulp-babel'); -var istanbul = require('gulp-istanbul'); -var jscs = require('gulp-jscs'); -var jshint = require('gulp-jshint'); - -var mocha = require('gulp-mocha'); -var rename = require('gulp-rename'); -var stylish = require('gulp-jscs-stylish'); - -var browserify = require('browserify'); -var buffer = require('vinyl-buffer'); -var del = require('del'); -var path = require('path'); -var Promise = require('es6-promise').Promise; -var source = require('vinyl-source-stream'); -var sourcemaps = require('gulp-sourcemaps'); -var uglify = require('gulp-uglify'); - -gulp.task('lint', function() { - var sources = [ - path.join(__dirname, '/*.js'), - path.join(__dirname, '/src/*.js'), - path.join(__dirname, '/test/*.js') - ]; - var opts = { - base: './' - }; - - return gulp.src(sources, opts) - .pipe(jshint()) - .pipe(jscs()) - .pipe(stylish.combineWithHintResults()) - .pipe(jscs.reporter()) - .pipe(jshint.reporter('jshint-stylish')) - .pipe(gulp.dest('.')) - ; -}); - -gulp.task('coverage', function() { - return gulp.src('src/**/*.js') - .pipe(istanbul()) - .pipe(istanbul.hookRequire()) - ; -}); - -gulp.task('test:mocha', ['coverage'], function() { - var srcOpts = { - read: false - }; - var mochaOpts = { - timeout: 30000, - slow: 5000 - }; - - return gulp.src('test/test.*.js', srcOpts) - .pipe(mocha(mochaOpts)) - .pipe(istanbul.writeReports()) - ; -}); - -gulp.task('clean', function() { - return Promise.all([del('dist/*'), del('coverage/*')]); -}); - -gulp.task('build', function() { - var bundler = browserify({ - debug: true, - entries: 'src/github.js', - standalone: 'Github' - }); - - bundler - .transform('babelify') - .bundle() - .pipe(source('github.js')) - .pipe(buffer()) - .pipe(sourcemaps.init({ - loadMaps: true - })) - .pipe(uglify()) - .pipe(rename({ - extname: '.bundle.min.js' - })) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')) - ; - - gulp.src('src/github.js') - .pipe(babel()) - .pipe(sourcemaps.init()) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')) - ; - - return gulp.src('src/github.js') - .pipe(babel()) - .pipe(sourcemaps.init()) - .pipe(rename({ - extname: '.min.js' - })) - .pipe(uglify()) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')) - ; -}); - -gulp.task('default', ['clean'], function() { - gulp.start('lint', 'test:mocha', 'build'); -}); diff --git a/src/Gist.js b/lib/Gist.js similarity index 100% rename from src/Gist.js rename to lib/Gist.js diff --git a/src/Issue.js b/lib/Issue.js similarity index 100% rename from src/Issue.js rename to lib/Issue.js diff --git a/src/Organization.js b/lib/Organization.js similarity index 100% rename from src/Organization.js rename to lib/Organization.js diff --git a/src/Ratelimit.js b/lib/Ratelimit.js similarity index 100% rename from src/Ratelimit.js rename to lib/Ratelimit.js diff --git a/src/Repository.js b/lib/Repository.js similarity index 100% rename from src/Repository.js rename to lib/Repository.js diff --git a/src/Requestable.js b/lib/Requestable.js similarity index 100% rename from src/Requestable.js rename to lib/Requestable.js diff --git a/src/Search.js b/lib/Search.js similarity index 100% rename from src/Search.js rename to lib/Search.js diff --git a/src/User.js b/lib/User.js similarity index 100% rename from src/User.js rename to lib/User.js diff --git a/src/github.js b/lib/github.js similarity index 100% rename from src/github.js rename to lib/github.js diff --git a/test/mocha.opts b/mocha.opts similarity index 100% rename from test/mocha.opts rename to mocha.opts diff --git a/package.json b/package.json index 30c2abfc..d1d3ed13 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,78 @@ { "name": "github-api", "version": "0.11.2", + "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "src/github.js", + "contributors": [ + "Ændrew Rininsland (http://www.aendrew.com)", + "Aurelio De Rosa (http://www.audero.it/)", + "Clay Reimann (http://clayreimann.me)", + "Michael Aufreiter (http://substance.io)" + ], + "readmeFilename": "README.md", + "scripts": { + "clean": "gulp clean", + "build": "gulp build", + "test": "mocha --opts ./mocha.opts test/*.spec.js", + "test-verbose": "DEBUG=github* mocha test/*.spec.js", + "lint": "gulp lint", + "codecov": "node_modules/.bin/codecov", + "show-coverage-html": "open coverage/lcov-report/index.html", + "generate-docs": "node_modules/.bin/jsdoc -c .jsdoc.json --verbose" + }, + "babel": { + "presets": [ + "es2015" + ], + "plugins": [ + [ + "transform-es2015-modules-umd", + { + "globals": { + "es6-promise": "Promise" + } + } + ] + ], + "env": { + "development": { + "sourceMaps": "inline" + } + } + }, "dependencies": { "axios": "https://github.com/github-tools/axios.git", - "base-64": "^0.1.0", "es6-promise": "^3.0.2", + "js-base64": "^2.1.9", "utf8": "^2.1.1" }, "devDependencies": { + "babel-core": "^6.7.7", "babel-plugin-transform-es2015-modules-umd": "^6.5.0", "babel-preset-es2015": "^6.5.0", + "babel-register": "^6.7.2", "babelify": "^7.2.0", "browserify": "^13.0.0", - "browserify-istanbul": "^0.2.1", "codecov": "^1.0.1", "del": "^2.2.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.2", - "gulp-istanbul": "^0.10.3", + "gulp-eslint": "^2.0.0", "gulp-jscs": "^3.0.2", "gulp-jscs-stylish": "^1.3.0", "gulp-jshint": "^2.0.0", - "gulp-mocha": "^2.2.0", "gulp-rename": "^1.2.2", "gulp-sourcemaps": "^1.6.0", "gulp-uglify": "^1.5.1", - "istanbul": "^0.4.2", - "jshint": "^2.9.1", - "jshint-stylish": "^2.1.0", + "istanbul": "^0.4.3", + "jsdoc": "^3.4.0", + "minami": "^1.1.1", "mocha": "^2.3.4", "must": "^0.13.1", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0" }, - "scripts": { - "test": "gulp test && gulp lint", - "lint": "gulp lint", - "codecov": "node_modules/.bin/codecov", - "show-coverage-html": "open coverage/lcov-report/index.html" - }, "repository": { "type": "git", "url": "git://github.com/michael/github.git" @@ -49,13 +81,6 @@ "github", "api" ], - "contributors": [ - "Ændrew Rininsland (http://www.aendrew.com)", - "Aurelio De Rosa (http://www.audero.it/)", - "Michael Aufreiter (http://substance.io)" - ], - "license": "BSD-3-Clause-Clear", - "readmeFilename": "README.md", "gitHead": "aa8aa3c8cd5ce5240373d4fd1d06a7ab4af41a36", "bugs": { "url": "https://github.com/michael/github/issues" diff --git a/test/.eslintrc b/test/.eslintrc new file mode 100644 index 00000000..73d8d9b7 --- /dev/null +++ b/test/.eslintrc @@ -0,0 +1,7 @@ +{ + "extends": "../.eslintrc", + + "env": { + "mocha": true + } +} diff --git a/test/.jshintrc b/test/.jshintrc deleted file mode 100644 index 910bdea2..00000000 --- a/test/.jshintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "browser": true, - "mocha": true, - "node": true, - "globals": { - "require": false, - "define": false - } -} diff --git a/test/test.auth.js b/test/auth.spec.js similarity index 100% rename from test/test.auth.js rename to test/auth.spec.js diff --git a/test/test.gist.js b/test/gist.spec.js similarity index 100% rename from test/test.gist.js rename to test/gist.spec.js diff --git a/test/test.issue.js b/test/issue.spec.js similarity index 100% rename from test/test.issue.js rename to test/issue.spec.js diff --git a/test/test.org.js b/test/organization.spec.js similarity index 100% rename from test/test.org.js rename to test/organization.spec.js diff --git a/test/test.rate-limit.js b/test/rate-limit.spec.js similarity index 100% rename from test/test.rate-limit.js rename to test/rate-limit.spec.js diff --git a/test/test.repo.js b/test/repository.spec.js similarity index 100% rename from test/test.repo.js rename to test/repository.spec.js diff --git a/test/test.search.js b/test/search.spec.js similarity index 100% rename from test/test.search.js rename to test/search.spec.js diff --git a/test/test.user.js b/test/user.spec.js similarity index 100% rename from test/test.user.js rename to test/user.spec.js From 10523ca97c6c1c96937e025aea79800a884ab66b Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 26 Apr 2016 21:34:08 -0500 Subject: [PATCH 009/137] feature: refactor API to be more uniform * Update npm for publishing * Update changelog to reflect the breaking changes * Update travis.yml to properly run tests * Update jsdoc config --- .babelrc | 10 -- .editorconfig | 2 +- .gitignore | 3 - .jsdoc.json | 2 +- .npmignore | 6 + .travis.yml | 36 +++-- CHANGELOG.md | 52 ++++++- README.md | 83 +++++++++-- gulpfile.babel.js | 102 +++++++------ lib/Gist.js | 22 +-- lib/{github.js => GitHub.js} | 14 +- lib/Issue.js | 30 ++-- lib/Organization.js | 20 ++- lib/{Ratelimit.js => RateLimit.js} | 0 lib/Repository.js | 228 +++++++++++++---------------- lib/Requestable.js | 12 +- lib/Search.js | 14 +- lib/User.js | 124 +++++++--------- package.json | 20 ++- test/auth.spec.js | 6 +- test/dist.spec/index.html | 31 ++++ test/gist.spec.js | 2 +- test/helpers/callbacks.js | 13 +- test/helpers/getTestRepoName.js | 4 + test/issue.spec.js | 18 +-- test/organization.spec.js | 64 +++++--- test/rate-limit.spec.js | 2 +- test/repository.spec.js | 125 ++++++++-------- test/search.spec.js | 10 +- test/user.spec.js | 54 ++----- 30 files changed, 623 insertions(+), 486 deletions(-) delete mode 100644 .babelrc create mode 100644 .npmignore rename lib/{github.js => GitHub.js} (82%) rename lib/{Ratelimit.js => RateLimit.js} (100%) create mode 100644 test/dist.spec/index.html create mode 100644 test/helpers/getTestRepoName.js diff --git a/.babelrc b/.babelrc deleted file mode 100644 index cb4b32ad..00000000 --- a/.babelrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "presets": ["es2015"], - "plugins": [ - ["transform-es2015-modules-umd", { - "globals": { - "es6-promise": "Promise" - } - }] - ] -} diff --git a/.editorconfig b/.editorconfig index 693a0400..a5a6e6eb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,7 +8,7 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[*.yml,package.json] +[{*.yml,package.json}] indent_size = 2 [*.md] diff --git a/.gitignore b/.gitignore index ca27d6c8..1f5a1c95 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,7 @@ docs/ dist/ coverage/ node_modules/ -.nyc_output/ .DS_Store -.idea -.zuulrc npm-debug.log sauce.json diff --git a/.jsdoc.json b/.jsdoc.json index 62df38bb..a4378ffb 100644 --- a/.jsdoc.json +++ b/.jsdoc.json @@ -3,7 +3,7 @@ "dictionaries": ["jsdoc"] }, "source": { - "include": ["src", "package.json", "README.md"], + "include": ["lib/", "package.json", "README.md"], "includePattern": ".js$", "excludePattern": "(node_modules/|docs)" }, diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..15fff57d --- /dev/null +++ b/.npmignore @@ -0,0 +1,6 @@ +docs/ +coverage/ +node_modules/ + +.DS_Store +sauce.json diff --git a/.travis.yml b/.travis.yml index c15e8047..48cb5941 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,27 @@ language: node_js - -sudo: false - node_js: - - "5.7" - - "4.3" - - "0.12" - - "0.10" - + - '5' + - '4' + - '0.12' + - '0.10' cache: directories: - node_modules - -before_install: - - npm install -g npm@latest - +before_install: npm install -g npm@latest +before_script: + - npm run lint + # - npm run build # will need this when we do sauce testing of compiled files script: - - gulp lint - - gulp test:mocha - # - npm run codecov # disabled temporarialy while I work out how to generate accurate coverage of ES2015 code + - npm test + # - npm run test-dist # test the compiled files +# after_success: +# - npm run codecov # disabled temporarialy while I work out how to generate accurate coverage of ES2015 code +before_deploy: + - npm run build +deploy: + provider: npm + skip_cleanup: true + on: + tags: true + api_key: + secure: TZHqJ9Kh2Qf0GAVDjEOQ01Ez6rGMYHKwVLOKTbnb7nSzF7iiGNT4UwzvYawm0T9p1k7X1WOqW3l7OEbIwoKl7/9azT4BBJm7qUMRfB9Zio5cL3rKubJVz7+LEEIW4iBeDWLanhUDgy9BO2JKCt8bfp/U2tltgXtu9Fm/UFPALI8= diff --git a/CHANGELOG.md b/CHANGELOG.md index 464524fd..075c2cdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,13 +6,51 @@ Complete rewrite in ES2015. * Promise-ified the API * Auto-generation of documentation * Modularized codebase -* Refactored tests to run primarially in mocha +* Refactored tests to run primarily in mocha #### Breaking changes -* Search API no longer takes a string it now takes an object with properties `q`, `sort`, and `order` to make - the parts of the query easier to grok and to better match GitHub's API -* `Repository.getSha` now returns the same data as GitHub's API. If the reqeusted object is not a directory then the - response will contain a property `SHA`, and if the reqeusted object is a directory then the contents of the - directory are `stat`ed +Most of the breaking changes are just methods that got renamed. The changes to `User` and `Organization` are deeper +changes that now scope a particular `User` or `Organization` to the entity they were instantiated with. You will need +separate `User`s to query data about different user accounts. + +* `Github.getOrg` → `Github.getOrganization` and requires an organization name. +* `Github.getUser` now requires a username. +* `Issue.comment` → `Issue.createIssueComment` +* `Issue.create` → `Issue.createIssue` +* `Issue.edit` → `Issue.editIssue` +* `Issue.get` → `Issue.getIssue` +* `Issue.list` → `Issue.listIssues` +* `Repository.branch` → `Repository.createBranch` +* `Repository.collaborators` → `Repository.getCollaborators` +* `Repository.compare` → `Repository.compareBranches` +* `Repository.contents` → `Repository.getContents` and now takes an argument for the content type +* `Repository.delete` has been removed. +* `Repository.editHook` → `Repository.updateHook` +* `Repository.editRelease` → `Repository.updateRelease` +* `Repository.getCommit` no longer takes a branch as the first argument +* `Repository.getPull` → `Repository.getPullRequest` * `Repository.getRef` now returns the `refspec` from GitHub's API. -* `Repository.delete` has been removed +* `Repository.getSha` now returns the same data as GitHub's API. If the reqeusted object is not a directory then the + response will contain a property `SHA`, and if the reqeusted object is a directory then the contents of the directory + are `stat`ed. +* `Repository.getStatuses` → `Repository.listStatuses` +* `Repository.listPulls` → `Repository.listPullRequests` +* `Repository.postBlob` → `Repository.createBlob` +* `Repository.postTree` → `Repository.createTree` +* `Repository.read` remove in favor of `Repository.getContents` +* `Repository.remove` → `Repository.deleteFile` +* `Repository.show` → `Repository.getDetails` +* `Repository.write` → `Repository.writeFile` +* `Search.code` → `Search.forCode` +* `Search.issues` → `Search.forIssues` +* `Search.repositories` → `Search.forRepositories` +* `Search.users` → `Search.forUsers` +* The Search API no longer takes a string, it now takes an object with properties `q`, `sort`, and `order` to make the + parts of the query easier to grok and to better match GitHub's API. +* `User.gists` → `User.getGists` +* `User.notifications` → `User.getNotifications` +* `User.orgRepos` → `Organization.getRepos` +* `User.orgs` → `User.getOrgs` +* `User.repos` → `User.getRepos` +* `User.show` → `User.getProfile` and no longer takes filtering options +* `User.userStarred` → `User.getStarredRepos` diff --git a/README.md b/README.md index 6e35c4ca..478dc29a 100644 --- a/README.md +++ b/README.md @@ -17,15 +17,11 @@ npm install github-api ``` ## Compatibility - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/githubjs.svg)](https://saucelabs.com/u/githubjs) - -**Note**: Starting from version 0.10.8, Github.js supports **Internet Explorer 9**. However, the underlying methodology -used under the hood to perform CORS requests (the `XDomainRequest` object), [has limitations](xhr-link). -In particular, requests must be targeted to the same scheme as the hosting page. This means that if a page is at -http://example.com, your target URL must also begin with HTTP. Similarly, if your page is at https://example.com, then -your target URL must also begin with HTTPS. For this reason, if your requests are sent to the GitHub API (the default), -which are served via HTTPS, your page must use HTTPS too. +Github.js is tested on Node: +* 0.10 +* 0.12 +* 4.x +* 5.x ## GitHub Tools @@ -33,9 +29,74 @@ The team behind Github.js has created a whole organization, called [GitHub Tools dedicated to GitHub and its API. In the near future this repository could be moved under the GitHub Tools organization as well. In the meantime, we recommend you to take a look at other projects of the organization. -## Example +## Samples + +```javascript +/* + Data can be retrieved from the API either using callbacks (as in versions < 1.0) + or using a new promise-based API. For now the promise-based API just returns the + raw HTTP request promise; this might change in the next version. + */ +var GitHub = require('github-api'); + +// unauthenticated client +var gh = new GitHub(); +var gist = gh.getGist(); // not a gist yet +gist.create({ + public: true, + description: 'My first gist', + files: { + "file1.txt": { + contents: "Aren't gists great!" + } + } +}).then(function(httpResponse) { + // Promises! + var gist = httpResponse.data; + gist.read(function(err, gist, xhr) { + // if no error occurred then err == null + + // gist == httpResponse.data + + // xhr == httpResponse + }); +}); +``` + +```javascript +var GitHub = require('github-api'); -**TODO** +// basic auth +var gh = new GitHub({ + username: 'FOO', + password: 'NotFoo' +}); + +var me = gh.getUser(); +me.getNotification(function(err, notifcations) { + // do some stuff +}); + +var clayreimann = gh.getUser('clayreimann'); +clayreimann.getStarredRepos() + .then(function(httpPromise) { + var repos = httpPromise.data; + }); +``` + +```javascript +var GitHub = require('github-api'); + +// token auth +var gh = new GitHub({ + token: 'MY_OAUTH_TOKEN' +}); + +var yahoo = gh.getOrganization('yahoo'); +yahoo.getRepos(function(err, repos) { + // look at all the repos! +}) +``` [cdnjs]: https://cdnjs.com/ [codecov]: https://codecov.io/github/michael/github?branch=master diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 6b92e2c2..9055f7b3 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -6,14 +6,14 @@ import stylish from 'gulp-jscs-stylish'; import babel from 'gulp-babel'; import rename from 'gulp-rename'; -import browserify from 'browserify'; -import buffer from 'vinyl-buffer'; -import del from 'del'; -import path from 'path'; +import browserify from 'browserify'; +import buffer from 'vinyl-buffer'; +import del from 'del'; +import path from 'path'; import {Promise} from 'es6-promise'; -import source from 'vinyl-source-stream'; -import sourcemaps from 'gulp-sourcemaps'; -import uglify from 'gulp-uglify'; +import source from 'vinyl-source-stream'; +import sourcemaps from 'gulp-sourcemaps'; +import uglify from 'gulp-uglify'; const ALL_SOURCES = [ path.join(__dirname, '/*.js'), @@ -37,51 +37,69 @@ gulp.task('clean', function() { return Promise.all([del('dist/'), del('coverage/')]); }); -const browserifyConfig = { +gulp.task('build', [ + 'build:bundled:min', + 'build:external:min', + 'build:bundled:debug', + 'build:external:debug', + 'build:components' +]); + +const bundledConfig = { debug: true, - entries: 'src/Github.js', - standalone: 'Github' + entries: 'lib/GitHub.js', + standalone: 'GitHub' }; -gulp.task('build', function() { - browserify(browserifyConfig) - .transform('babelify') - .bundle() - .pipe(source('Github.js')) - .pipe(buffer()) - .pipe(sourcemaps.init({ - loadMaps: true - })) - .pipe(uglify()) - .pipe(rename({ - extname: '.bundle.min.js' - })) +const externalConfig = { + debug: true, + entries: 'lib/GitHub.js', + standalone: 'GitHub', + external: [ + 'axios', + 'js-base64', + 'es6-promise', + 'debug', + 'utf8' + ], + bundleExternal: false +}; +gulp.task('build:bundled:min', function() { + return buildBundle(bundledConfig, '.bundle.min.js', true); +}); +gulp.task('build:external:min', function() { + return buildBundle(externalConfig, '.min.js', true); +}); +gulp.task('build:bundled:debug', function() { + return buildBundle(bundledConfig, '.bundle.js', false); +}); +gulp.task('build:external:debug', function() { + return buildBundle(externalConfig, '.js', false); +}); +gulp.task('build:components', function() { + return gulp.src('lib/*.js') + .pipe(sourcemaps.init()) + .pipe(babel()) .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')) + .pipe(gulp.dest('dist/components')) ; +}); - browserify(browserifyConfig) +function buildBundle(options, extname, minify) { + let stream = browserify(options) .transform('babelify') .bundle() - .pipe(source('Github.js')) + .pipe(source('GitHub.js')) .pipe(buffer()) .pipe(sourcemaps.init({ loadMaps: true - })) - .pipe(rename({ - extname: '.bundle.js' - })) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist')) - ; + })); - return gulp.src('src/*.js') - .pipe(babel()) - .pipe(sourcemaps.init()) + if (minify) { + stream = stream.pipe(uglify()); + } + + return stream.pipe(rename({extname})) .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist/components')) + .pipe(gulp.dest('dist')) ; -}); - -gulp.task('default', ['clean'], function() { - gulp.start('lint', 'test:mocha', 'build'); -}); +} diff --git a/lib/Gist.js b/lib/Gist.js index a24917b5..d92cc678 100644 --- a/lib/Gist.js +++ b/lib/Gist.js @@ -19,7 +19,7 @@ class Gist extends Requestable { */ constructor(id, auth, apiBase) { super(auth, apiBase); - this.id = id; + this.__id = id; } /** @@ -29,7 +29,7 @@ class Gist extends Requestable { * @return {Promise} - the Promise for the http request */ read(cb) { - return this._request('GET', `/gists/${this.id}`, null, cb); + return this._request('GET', `/gists/${this.__id}`, null, cb); } /** @@ -42,7 +42,7 @@ class Gist extends Requestable { create(gist, cb) { return this._request('POST', '/gists', gist, cb) .then((response) => { - this.id = response.data.id; + this.__id = response.data.id; return response; }); } @@ -54,7 +54,7 @@ class Gist extends Requestable { * @return {Promise} - the Promise for the http request */ delete(cb) { - return this._request('DELETE', `/gists/${this.id}`, null, cb); + return this._request('DELETE', `/gists/${this.__id}`, null, cb); } /** @@ -64,18 +64,18 @@ class Gist extends Requestable { * @return {Promise} - the Promise for the http request */ fork(cb) { - return this._request('POST', `/gists/${this.id}/forks`, null, cb); + return this._request('POST', `/gists/${this.__id}/forks`, null, cb); } /** - * Modify a gist. + * Update a gist. * @see https://developer.github.com/v3/gists/#edit-a-gist - * @param {Object} gist - the data for the new gist + * @param {Object} gist - the new data for the gist * @param {Requestable.callback} [cb] - the function that receives the API result * @return {Promise} - the Promise for the http request */ update(gist, cb) { - return this._request('PATCH', `/gists/${this.id}`, gist, cb); + return this._request('PATCH', `/gists/${this.__id}`, gist, cb); } /** @@ -85,7 +85,7 @@ class Gist extends Requestable { * @return {Promise} - the Promise for the http request */ star(cb) { - return this._request('PUT', `/gists/${this.id}/star`, null, cb); + return this._request('PUT', `/gists/${this.__id}/star`, null, cb); } /** @@ -95,7 +95,7 @@ class Gist extends Requestable { * @return {Promise} - the Promise for the http request */ unstar(cb) { - return this._request('DELETE', `/gists/${this.id}/star`, null, cb); + return this._request('DELETE', `/gists/${this.__id}/star`, null, cb); } /** @@ -105,7 +105,7 @@ class Gist extends Requestable { * @return {Promise} - the Promise for the http request */ isStarred(cb) { - return this._request204or404(`/gists/${this.id}/star`, null, cb); + return this._request204or404(`/gists/${this.__id}/star`, null, cb); } } diff --git a/lib/github.js b/lib/GitHub.js similarity index 82% rename from lib/github.js rename to lib/GitHub.js index 80eee152..3a895f9a 100644 --- a/lib/github.js +++ b/lib/GitHub.js @@ -30,7 +30,8 @@ class GitHub { /** * Create a new Gist wrapper - * @param {number} id - the id for the gist, leave undefined when creating a new gist + * @param {number} [id] - the id for the gist, leave undefined when creating a new gist + * @return {Gist} */ getGist(id) { return new Gist(id, this.__auth, this.__apiBase); @@ -38,18 +39,21 @@ class GitHub { /** * Create a new User wrapper + * @param {string} [user] - the name of the user to get information about + * leave undefined for the authenticated user * @return {User} */ - getUser() { - return new User(this.__auth, this.__apiBase); + getUser(user) { + return new User(user, this.__auth, this.__apiBase); } /** * Create a new Organization wrapper + * @param {string} organization - the name of the organization * @return {Organization} */ - getOrg() { - return new Organization(this.__auth, this.__apiBase); + getOrganization(organization) { + return new Organization(organization, this.__auth, this.__apiBase); } /** diff --git a/lib/Issue.js b/lib/Issue.js index 67155599..0acd7d4c 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -13,13 +13,13 @@ import Requestable from './Requestable'; class Issue extends Requestable { /** * Create a new Issue - * @param {string} repoPath - the full name (:user/:repo) to get issues for + * @param {string} repository - the full name of the repository (`:user/:repo`) to get issues for * @param {Requestable.auth} [auth] - information required to authenticate to Github * @param {string} [apiBase=https://api.github.com] - the base Github API URL */ - constructor(repoPath, auth, apiBase) { + constructor(repository, auth, apiBase) { super(auth, apiBase); - this.__issuesPath = `/repos/${repoPath}/issues`; + this.__repository = repository; } /** @@ -29,8 +29,8 @@ class Issue extends Requestable { * @param {Requestable.callback} [cb] - will receive the created issue * @return {Promise} - the promise for the http request */ - create(issueData, cb) { - this._request('POST', this.__issuesPath, issueData, cb); + createIssue(issueData, cb) { + this._request('POST', `/repos/${this.__repository}/issues`, issueData, cb); } /** @@ -40,21 +40,20 @@ class Issue extends Requestable { * @param {Requestable.callback} [cb] - will receive the array of issues * @return {Promise} - the promise for the http request */ - list(options, cb) { - this._requestAllPages(this.__issuesPath, options, cb); + listIssues(options, cb) { + this._requestAllPages(`/repos/${this.__repository}/issues`, options, cb); } /** * Comment on an issue * @see https://developer.github.com/v3/issues/comments/#create-a-comment - * @param {Object} issue - an issue object fetched from GitHub + * @param {number} issue - the id of the issue to comment on * @param {string} comment - the comment to add * @param {Requestable.callback} [cb] - will receive the created comment * @return {Promise} - the promise for the http request */ - comment(issue, comment, cb) { - // path should change to be `${this.__issuesPath}/${issue}/comments` - this._request('POST', issue.comments_url, {body: comment}, cb); // jscs:ignore + createIssueComment(issue, comment, cb) { + this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb); // jscs:ignore } /** @@ -65,8 +64,8 @@ class Issue extends Requestable { * @param {Requestable.callback} [cb] - will receive the modified issue * @return {Promise} - the promise for the http request */ - edit(issue, issueData, cb) { - this._request('PATCH', `${this.__issuesPath}/${issue}`, issueData, cb); + editIssue(issue, issueData, cb) { + this._request('PATCH', `/repos/${this.__repository}/issues/${issue}`, issueData, cb); } /** @@ -76,10 +75,9 @@ class Issue extends Requestable { * @param {Requestable.callback} [cb] - will receive the issue * @return {Promise} - the promise for the http request */ - get(issue, cb) { - this._request('GET', `${this.__issuesPath}/${issue}`, null, cb); + getIssue(issue, cb) { + this._request('GET', `/repos/${this.__repository}/issues/${issue}`, null, cb); } - } module.exports = Issue; diff --git a/lib/Organization.js b/lib/Organization.js index d6bd441d..c3d3dd70 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -13,22 +13,36 @@ import Requestable from './Requestable'; class Organization extends Requestable { /** * Create a new Organization + * @param {string} organization - the name of the organization * @param {Requestable.auth} [auth] - information required to authenticate to Github * @param {string} [apiBase=https://api.github.com] - the base Github API URL */ - constructor(auth, apiBase) { + constructor(organization, auth, apiBase) { super(auth, apiBase); + this.__name = organization; } /** * Create a repository in an organization * @see https://developer.github.com/v3/repos/#create - * @param {Object} options - contains the organization name and repository definition + * @param {Object} options - the repository definition * @param {Requestable.callback} [cb] - will receive the created repository * @return {Promise} - the promise for the http request */ createRepo(options, cb) { - this._request('POST', '/orgs/' + options.orgname + '/repos', options, cb); + this._request('POST', `/orgs/${this.__name}/repos`, options, cb); + } + + /** + * List the repositories in an organization + * @see https://developer.github.com/v3/repos/#list-organization-repositories + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + getRepos(cb) { + let requestOptions = this._getOptionsWithDefaults({direction: 'desc'}); + + return this._requestAllPages(`/orgs/${this.__name}/repos`, requestOptions, cb); } } diff --git a/lib/Ratelimit.js b/lib/RateLimit.js similarity index 100% rename from lib/Ratelimit.js rename to lib/RateLimit.js diff --git a/lib/Repository.js b/lib/Repository.js index 009a9f3f..838cd5e8 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -24,7 +24,7 @@ class Repository extends Requestable { */ constructor(fullname, auth, apiBase) { super(auth, apiBase); - this.__repoPath = `/repos/${fullname}`; + this.__fullname = fullname; this.__currentTree = { branch: null, sha: null @@ -39,7 +39,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ getRef(ref, cb) { - return this._request('GET', `${this.__repoPath}/git/refs/${ref}`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/git/refs/${ref}`, null, cb); } /** @@ -50,7 +50,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ createRef(options, cb) { - return this._request('POST', `${this.__repoPath}/git/refs`, options, cb); + return this._request('POST', `/repos/${this.__fullname}/git/refs`, options, cb); } /** @@ -61,7 +61,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteRef(ref, cb) { - return this._request('DELETE', `${this.__repoPath}/git/refs/${ref}`, null, cb); + return this._request('DELETE', `/repos/${this.__fullname}/git/refs/${ref}`, null, cb); } /** @@ -71,7 +71,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteRepo(cb) { - return this._request('DELETE', this.__repoPath, null, cb); + return this._request('DELETE', `/repos/${this.__fullname}`, null, cb); } /** @@ -81,7 +81,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ listTags(cb) { - return this._request('GET', `${this.__repoPath}/tags`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/tags`, null, cb); } /** @@ -91,9 +91,9 @@ class Repository extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of PRs * @return {Promise} - the promise for the http request */ - listPulls(options, cb) { + listPullRequests(options, cb) { options = options || {}; - return this._request('GET', `${this.__repoPath}/pulls`, options, cb); + return this._request('GET', `/repos/${this.__fullname}/pulls`, options, cb); } /** @@ -103,8 +103,8 @@ class Repository extends Requestable { * @param {Requestable.callback} [cb] - will receive the PR from the API * @return {Promise} - the promise for the http request */ - getPull(number, cb) { - return this._request('GET', `${this.__repoPath}/pulls/${number}`, null, cb); + getPullRequest(number, cb) { + return this._request('GET', `/repos/${this.__fullname}/pulls/${number}`, null, cb); } /** @@ -115,8 +115,8 @@ class Repository extends Requestable { * @param {Requestable.callback} cb - will receive the comparison * @return {Promise} - the promise for the http request */ - compare(base, head, cb) { - return this._request('GET', `${this.__repoPath}/compare/${base}...${head}`, null, cb); + compareBranches(base, head, cb) { + return this._request('GET', `/repos/${this.__fullname}/compare/${base}...${head}`, null, cb); } /** @@ -126,7 +126,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ listBranches(cb) { - return this._request('GET', `${this.__repoPath}/branches`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/branches`, null, cb); } /** @@ -137,19 +137,39 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ getBlob(sha, cb) { - return this._request('GET', `${this.__repoPath}/git/blobs/${sha}`, null, cb, 'raw'); + return this._request('GET', `/repos/${this.__fullname}/git/blobs/${sha}`, null, cb, 'raw'); } /** * Get a commit from the repository * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit - * @param {string} branch - unused * @param {string} sha - the sha for the commit to fetch * @param {Requestable.callback} cb - will receive the commit data * @return {Promise} - the promise for the http request */ - getCommit(branch, sha, cb) { - return this._request('GET', `${this.__repoPath}/git/commits/${sha}`, null, cb); + getCommit(sha, cb) { + return this._request('GET', `/repos/${this.__fullname}/git/commits/${sha}`, null, cb); + } + + /** + * List the commits on a repository, optionally filtering by path, author or time range + * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository + * @param {Object} [options] + * @param {string} [options.sha] - the SHA or branch to start from + * @param {string} [options.path] - the path to search on + * @param {string} [options.author] - the commit author + * @param {(Date|string)} [options.since] - only commits after this date will be returned + * @param {(Date|string)} [options.until] - only commits before this date will be returned + * @param {Requestable.callback} cb - will receive the list of commits found matching the criteria + * @return {Promise} - the promise for the http request + */ + listCommits(options, cb) { + options = options || {}; + + options.since = this._dateToISO(options.since); + options.until = this._dateToISO(options.until); + + return this._request('GET', `/repos/${this.__fullname}/commits`, options, cb); } /** @@ -162,7 +182,7 @@ class Repository extends Requestable { */ getSha(branch, path, cb) { branch = branch ? `?ref=${branch}` : ''; - return this._request('GET', `${this.__repoPath}/contents/${path}${branch}`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/contents/${path}${branch}`, null, cb); } /** @@ -172,8 +192,8 @@ class Repository extends Requestable { * @param {Requestable.callback} cb - will receive the list of statuses * @return {Promise} - the promise for the http request */ - getStatuses(sha, cb) { - return this._request('GET', `${this.__repoPath}/commits/${sha}/statuses`, null, cb); + listStatuses(sha, cb) { + return this._request('GET', `/repos/${this.__fullname}/commits/${sha}/statuses`, null, cb); } /** @@ -184,7 +204,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ getTree(treeSHA, cb) { - return this._request('GET', `${this.__repoPath}/git/trees/${treeSHA}`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/git/trees/${treeSHA}`, null, cb); } /** @@ -194,10 +214,11 @@ class Repository extends Requestable { * @param {Requestable.callback} cb - will receive the details of the created blob * @return {Promise} - the promise for the http request */ - postBlob(content, cb) { + createBlob(content, cb) { let postBody = this._getContentObject(content); - return this._request('POST', this.__repoPath + '/git/blobs', postBody, cb); + log('sending content', postBody); + return this._request('POST', `/repos/${this.__fullname}/git/blobs`, postBody, cb); } _getContentObject(content) { @@ -246,7 +267,7 @@ class Repository extends Requestable { }] }; - return this._request('POST', `${this.__repoPath}/git/trees`, newTree, cb); + return this._request('POST', `/repos/${this.__fullname}/git/trees`, newTree, cb); } /** @@ -257,8 +278,8 @@ class Repository extends Requestable { * @param {Requestable.callback} cb - will receive the new tree that is created * @return {Promise} - the promise for the http request */ - postTree(tree, baseSHA, cb) { - return this._request('POST', `${this.__repoPath}/git/trees`, {tree, base_tree: baseSHA}, cb); // jscs:ignore + createTree(tree, baseSHA, cb) { + return this._request('POST', `/repos/${this.__fullname}/git/trees`, {tree, base_tree: baseSHA}, cb); // jscs:ignore } /** @@ -268,7 +289,7 @@ class Repository extends Requestable { * @param {Object} tree - the tree that describes this commit * @param {string} message - the commit message * @param {Function} cb - will receive the commit that is created - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ commit(parent, tree, message, cb) { let data = { @@ -277,7 +298,7 @@ class Repository extends Requestable { parents: [parent] }; - return this._request('POST', `${this.__repoPath}/git/commits`, data, cb) + return this._request('POST', `/repos/${this.__fullname}/git/commits`, data, cb) .then((response) => { this.__currentTree.sha = response.sha; // Update latest commit return response; @@ -290,41 +311,41 @@ class Repository extends Requestable { * @param {string} ref - the ref to update * @param {string} commitSHA - the SHA to point the reference to * @param {Function} cb - will receive the updated ref back - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ updateHead(ref, commitSHA, cb) { - return this._request('PATCH', `${this.__repoPath}/git/refs/${ref}`, {sha: commitSHA}, cb); + return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, {sha: commitSHA}, cb); } /** * Get information about the repository * @see https://developer.github.com/v3/repos/#get * @param {Function} cb - will receive the information about the repository - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - show(cb) { - return this._request('GET', this.__repoPath, null, cb); + getDetails(cb) { + return this._request('GET', `/repos/${this.__fullname}`, null, cb); } /** * List the contributors to the repository * @see https://developer.github.com/v3/repos/#list-contributors * @param {Function} cb - will receive the list of contributors - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - contributors(cb) { - - return this._request('GET', `${this.__repoPath}/stats/contributors`, null, cb); + getContributors(cb) { + return this._request('GET', `/repos/${this.__fullname}/stats/contributors`, null, cb); } /** - * List the users who are collaborators on the repository + * List the users who are collaborators on the repository. The currently authenticated user must have + * push access to use this method * @see https://developer.github.com/v3/repos/collaborators/#list-collaborators * @param {Function} cb - will receive the list of collaborators - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - collaborators(cb) { - return this._request('GET', `${this.__repoPath}/collaborators`, null, cb); + getCollaborators(cb) { + return this._request('GET', `/repos/${this.__fullname}/collaborators`, null, cb); } /** @@ -335,7 +356,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request {Boolean} [description] */ isCollaborator(username, cb) { - return this._request('GET', `${this.__repoPath}/collaborators/${username}`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/collaborators/${username}`, null, cb); } /** @@ -343,32 +364,33 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/contents/#get-contents * @param {string} ref - the ref to check * @param {string} path - the path containing the content to fetch + * @param {boolean} raw - `true` if the results should be returned raw instead of GitHub's normalized format * @param {Function} cb - will receive the fetched data - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - contents(ref, path, cb) { + getContents(ref, path, raw, cb) { path = path ? `${encodeURI(path)}` : ''; - return this._request('GET', `${this.__repoPath}/contents/${path}`, {ref}, cb); + return this._request('GET', `/repos/${this.__fullname}/contents/${path}`, {ref}, cb, raw); } /** * Fork a repository * @see https://developer.github.com/v3/repos/forks/#create-a-fork * @param {Function} cb - will receive the information about the newly created fork - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ fork(cb) { - return this._request('POST', `${this.__repoPath}/forks`, null, cb); + return this._request('POST', `/repos/${this.__fullname}/forks`, null, cb); } /** * List a repository's forks * @see https://developer.github.com/v3/repos/forks/#list-forks * @param {Function} cb - will receive the list of repositories forked from this one - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ listForks(cb) { - return this._request('GET', `${this.__repoPath}/forks`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/forks`, null, cb); } /** @@ -376,9 +398,9 @@ class Repository extends Requestable { * @param {string} [oldBranch=master] - the name of the existing branch * @param {string} newBranch - the name of the new branch * @param {Function} cb - will receive the commit data for the head of the new branch - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - branch(oldBranch, newBranch, cb) { + createBranch(oldBranch, newBranch, cb) { if (typeof newBranch === 'function') { cb = newBranch; newBranch = oldBranch; @@ -397,20 +419,20 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/pulls/#create-a-pull-request * @param {Object} options - the pull request description * @param {Function} cb - will receive the new pull request - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ createPullRequest(options, cb) { - return this._request('POST', `${this.__repoPath}/pulls`, options, cb); + return this._request('POST', `/repos/${this.__fullname}/pulls`, options, cb); } /** * List the hooks for the repository * @see https://developer.github.com/v3/repos/hooks/#list-hooks * @param {Function} cb - will receive the list of hooks - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ listHooks(cb) { - return this._request('GET', `${this.__repoPath}/hooks`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/hooks`, null, cb); } /** @@ -418,10 +440,10 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/hooks/#get-single-hook * @param {number} id - the id of the webook * @param {Function} cb - will receive the details of the webook - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ getHook(id, cb) { - return this._request('GET', `${this.__repoPath}/hooks/${id}`, null, cb); + return this._request('GET', `/repos/${this.__fullname}/hooks/${id}`, null, cb); } /** @@ -429,10 +451,10 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/hooks/#create-a-hook * @param {Object} options - the configuration describing the new hook * @param {Function} cb - will receive the new webhook - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ createHook(options, cb) { - return this._request('POST', `${this.__repoPath}/hooks`, options, cb); + return this._request('POST', `/repos/${this.__fullname}/hooks`, options, cb); } /** @@ -441,10 +463,10 @@ class Repository extends Requestable { * @param {number} id - the id of the webhook * @param {Object} options - the new description of the webhook * @param {Function} cb - will receive the updated webhook - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - editHook(id, options, cb) { - return this._request('PATCH', `${this.__repoPath}/hooks/${id}`, options, cb); + updateHook(id, options, cb) { + return this._request('PATCH', `/repos/${this.__fullname}/hooks/${id}`, options, cb); } /** @@ -452,23 +474,10 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/hooks/#delete-a-hook * @param {number} id - the id of the webhook to be deleted * @param {Function} cb - will receive true if the call is successful - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ deleteHook(id, cb) { - return this._request('DELETE', this.__repoPath + '/hooks/' + id, null, cb); - } - - /** - * Get the raw contents of a file in a branch - * @see https://developer.github.com/v3/repos/contents/#get-contents - * @param {string} branch - the name of the branch to read from, or the default branch if not specified - * @param {string} path - the path to read from - * @param {Function} cb - will receive the raw file contents - * @return {Promise} - the promise for the http request {[type]} [description] - */ - read(branch, path, cb) { - path = path ? encodeURI(path) : ''; - return this._request('GET', `${this.__repoPath}/contents/${path}`, {ref: branch}, cb, 'raw'); + return this._request('DELETE', `${this.__repoPath}/hooks/${id}`, null, cb); } /** @@ -477,9 +486,9 @@ class Repository extends Requestable { * @param {string} branch - the branch to delete from, or the default branch if not specified * @param {string} path - the path of the file to remove * @param {Function} cb - will receive the commit in which the delete occurred - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - remove(branch, path, cb) { + deleteFile(branch, path, cb) { this.getSha(branch, path) .then((response) => { const deleteCommit = { @@ -487,7 +496,7 @@ class Repository extends Requestable { sha: response.data.sha, branch }; - return this._request('DELETE', `${this.__repoPath}/contents/${path}`, deleteCommit, cb); + return this._request('DELETE', `/repos/${this.__fullname}/contents/${path}`, deleteCommit, cb); }); } @@ -537,12 +546,12 @@ class Repository extends Requestable { * @param {string} message - the commit message * @param {Object} [options] * @param {Object} [options.author] - the author of the commit - * @param {Object} [options.commit] - the committer + * @param {Object} [options.commiter] - the committer * @param {boolean} [options.encode] - true if the content should be base64 encoded * @param {Function} cb - will receive the new commit - * @return {Promise} - the promise for the http request {[type]} [description] + * @return {Promise} - the promise for the http request */ - write(branch, path, content, message, options, cb) { + writeFile(branch, path, content, message, options, cb) { if (typeof options === 'function') { cb = options; options = {}; @@ -560,68 +569,41 @@ class Repository extends Requestable { return this.getSha(branch, filePath) .then((response) => { commit.sha = response.data.sha; - return this._request('PUT', `${this.__repoPath}/contents/${filePath}`, commit, cb); + return this._request('PUT', `/repos/${this.__fullname}/contents/${filePath}`, commit, cb); }, () => { - return this._request('PUT', `${this.__repoPath}/contents/${filePath}`, commit, cb); + return this._request('PUT', `/repos/${this.__fullname}/contents/${filePath}`, commit, cb); }); } - /** - * List the commits on a repository, optionally filtering by path, author or time range - * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository - * @param {Object} [options] - options to filter by - * @param {string} [options.sha] - the SHA or branch to start from - * @param {string} [options.path] - the path to search on - * @param {string} [options.author] - the commit author - * @param {(Date|string)} [options.since] - only commits after this date will be returned - * @param {(Date|string)} [options.until] - only commits before this date will be returned - * @param {Requestable.callback} cb - will receive the list of commits found matching the criteria - * @return {Promise} - the promise for the http request - */ - getCommits(options, cb) { - options = options || {}; - - options.since = this._dateToISO(options.since); - options.until = this._dateToISO(options.until); - - return this._request('GET', `${this.__repoPath}/commits`, options, cb); - } - /** * Check if a repository is starred by you * @see https://developer.github.com/v3/activity/starring/#check-if-you-are-starring-a-repository - * @param {string} owner - the owner of the repository - * @param {string} repository - the name of the repository * @param {Requestable.callback} cb - will receive true if the repository is starred and false if the repository * is not starred * @return {Promise} - the promise for the http request {Boolean} [description] */ - isStarred(owner, repository, cb) { - return this._request204or404('/user/starred/' + owner + '/' + repository, null, cb); + isStarred(cb) { + return this._request204or404(`/user/starred/${this.__fullname}`, null, cb); } /** * Star a repository * @see https://developer.github.com/v3/activity/starring/#star-a-repository - * @param {string} owner - the owner of the repository - * @param {string} repository - the repository name * @param {Requestable.callback} cb - will receive true if the repository is starred * @return {Promise} - the promise for the http request */ - star(owner, repository, cb) { - return this._request('PUT', '/user/starred/' + owner + '/' + repository, null, cb); + star(cb) { + return this._request('PUT', `/user/starred/${this.__fullname}`, null, cb); } /** * Unstar a repository * @see https://developer.github.com/v3/activity/starring/#unstar-a-repository - * @param {string} owner - the owner of the repository - * @param {string} repository - the repository name * @param {Requestable.callback} cb - will receive true if the repository is unstarred * @return {Promise} - the promise for the http request */ - unstar(owner, repository, cb) { - return this._request('DELETE', '/user/starred/' + owner + '/' + repository, null, cb); + unstar(cb) { + return this._request('DELETE', `/user/starred/${this.__fullname}`, null, cb); } /** @@ -632,7 +614,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ createRelease(options, cb) { - return this._request('POST', this.__repoPath + '/releases', options, cb); + return this._request('POST', `/repos/${this.__fullname}/releases`, options, cb); } /** @@ -643,8 +625,8 @@ class Repository extends Requestable { * @param {Requestable.callback} cb - will receive the modified release * @return {Promise} - the promise for the http request */ - editRelease(id, options, cb) { - return this._request('PATCH', this.__repoPath + '/releases/' + id, options, cb); + updateRelease(id, options, cb) { + return this._request('PATCH', `/repos/${this.__fullname}/releases/${id}`, options, cb); } /** @@ -655,7 +637,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ getRelease(id, cb) { - return this._request('GET', this.__repoPath + '/releases/' + id, null, cb); + return this._request('GET', `/repos/${this.__fullname}/releases/${id}`, null, cb); } /** @@ -666,7 +648,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteRelease(id, cb) { - return this._request('DELETE', this.__repoPath + '/releases/' + id, null, cb); + return this._request('DELETE', `/repos/${this.__fullname}/releases/${id}`, null, cb); } } diff --git a/lib/Requestable.js b/lib/Requestable.js index ae2bfa4c..bd89910e 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -8,9 +8,14 @@ import axios from 'axios'; import debug from 'debug'; import {Base64} from 'js-base64'; +import {polyfill} from 'es6-promise'; const log = debug('github:request'); +if (typeof Promise === 'undefined') { + polyfill(); +} + /** * Requestable wraps the logic for making http requests to the API */ @@ -212,17 +217,18 @@ class Requestable { cb(null, results, response); } - return results; + response.data = results; + return response; }).catch(callbackErrorOrThrow(cb, path)); } } -export default Requestable; +module.exports = Requestable; // ////////////////////////// // // Private helper functions // // ////////////////////////// // -export function buildError(path, response) { +function buildError(path, response) { return { path: path, request: response.config, diff --git a/lib/Search.js b/lib/Search.js index e08a6024..0b61a8c3 100644 --- a/lib/Search.js +++ b/lib/Search.js @@ -42,35 +42,35 @@ class Search extends Requestable { } /** - * Search in repositories + * Search for repositories * @see https://developer.github.com/v3/search/#search-repositories * @param {Object} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ - repositories(options, cb) { + forRepositories(options, cb) { return this._search('repositories', options, cb); } /** - * Search amongst code + * Search for code * @see https://developer.github.com/v3/search/#search-code * @param {Object} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ - code(options, cb) { + forCode(options, cb) { return this._search('code', options, cb); } /** - * Search issues + * Search for issues * @see https://developer.github.com/v3/search/#search-issues * @param {Object} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ - issues(options, cb) { + forIssues(options, cb) { return this._search('issues', options, cb); } @@ -81,7 +81,7 @@ class Search extends Requestable { * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ - users(options, cb) { + forUsers(options, cb) { return this._search('users', options, cb); } } diff --git a/lib/User.js b/lib/User.js index 719fdc03..aea35d8a 100644 --- a/lib/User.js +++ b/lib/User.js @@ -15,21 +15,50 @@ const log = debug('github:user'); class User extends Requestable { /** * Create a User. + * @param {string} [username] - the user to use for user-scoped queries * @param {Requestable.auth} [auth] - information required to authenticate to Github * @param {string} [apiBase=https://api.github.com] - the base Github API URL */ - constructor(auth, apiBase) { + constructor(username, auth, apiBase) { super(auth, apiBase); + this.__user = username; + } + + /** + * Get the url for the request. (dependent on if we're requesting for the authenticated user or not) + * @private + * @param {string} endpoint - the endpoint being requested + * @return {string} - the resolved endpoint + */ + __getScopedUrl(endpoint) { + if (this.__user) { + return endpoint ? + `/users/${this.__user}/${endpoint}` + : `/users/${this.__user}` + ; + } else { + switch (endpoint) { + case '': + return '/user'; + + case 'notifications': + case 'gists': + return `/${endpoint}`; + + default: + return `/user/${endpoint}`; + } + } } /** * List the user's repositories - * @see https://developer.github.com/v3/repos/#list-your-repositories + * @see https://developer.github.com/v3/repos/#list-user-repositories * @param {Object} [options={}] - any options to refine the search * @param {Requestable.callback} [cb] - will receive the list of repositories * @return {Promise} - the promise for the http request */ - repos(options, cb) { + getRepos(options, cb) { if (typeof options === 'function') { cb = options; options = {}; @@ -38,25 +67,27 @@ class User extends Requestable { options = this._getOptionsWithDefaults(options); log(`Fetching repositories with options: ${JSON.stringify(options)}`); - return this._requestAllPages('/user/repos', options, cb); + return this._requestAllPages(this.__getScopedUrl('repos'), options, cb); } /** * List the orgs that the user belongs to + * @see https://developer.github.com/v3/orgs/#list-user-organizations * @param {Requestable.callback} [cb] - will receive the list of organizations * @return {Promise} - the promise for the http request */ - orgs(cb) { - return this._request('GET', '/user/orgs', null, cb); + getOrgs(cb) { + return this._request('GET', this.__getScopedUrl('orgs'), null, cb); } /** * List the user's gists + * @see https://developer.github.com/v3/gists/#list-a-users-gists * @param {Requestable.callback} [cb] - will receive the list of gists * @return {Promise} - the promise for the http request */ - gists(cb) { - return this._request('GET', '/gists', null, cb); + getGists(cb) { + return this._request('GET', this.__getScopedUrl('gists'), null, cb); } /** @@ -66,7 +97,7 @@ class User extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of repositories * @return {Promise} - the promise for the http request */ - notifications(options, cb) { + getNotifications(options, cb) { options = options || {}; if (typeof options === 'function') { cb = options; @@ -76,105 +107,54 @@ class User extends Requestable { options.since = this._dateToISO(options.since); options.before = this._dateToISO(options.before); - return this._request('GET', '/notifications', options, cb); + return this._request('GET', this.__getScopedUrl('notifications'), options, cb); } /** - * Show a user + * Show the user's profile * @see https://developer.github.com/v3/users/#get-a-single-user - * @param {string} [username] - the user to show, defaults to the current user * @param {Requestable.callback} [cb] - will receive the user's information * @return {Promise} - the promise for the http request */ - show(username, cb) { - if (typeof username === 'function') { - cb = username; - username = undefined; - } - const url = username ? '/users/' + username : '/user'; - - return this._request('GET', url, null, cb); - } - - /** - * Get a user's repositories - * @see https://developer.github.com/v3/repos/#list-user-repositories - * @param {string} username - the user's repositories we are interested in - * @param {Object} options - filtering options - * @param {Requestable.callback} [cb] - will receive the list of repositories - * @return {Promise} - the promise for the http request - */ - userRepos(username, options, cb) { - if (typeof options === 'function') { - cb = options; - options = {}; - } - - options = this._getOptionsWithDefaults(options); - - return this._requestAllPages(`/users/${username}/repos`, options, cb); + getProfile(cb) { + return this._request('GET', this.__getScopedUrl(''), null, cb); } /** - * Gets the list of starred repositories for a user + * Gets the list of starred repositories for the user * @see https://developer.github.com/v3/activity/starring/#list-repositories-being-starred - * @param {string} username - the user to query * @param {Requestable.callback} [cb] - will receive the list of starred repositories * @return {Promise} - the promise for the http request */ - userStarred(username, cb) { + getStarredRepos(cb) { let requestOptions = this._getOptionsWithDefaults(); - return this._requestAllPages(`/users/${username}/starred`, requestOptions, cb); - } - - /** - * List a user's gists - * @see https://developer.github.com/v3/gists/#list-a-users-gists - * @param {string} username - the user's gists to list - * @param {Requestable.callback} [cb] - receives the list of gists - * @return {Promise} - the promise for the http request - */ - userGists(username, cb) { - return this._request('GET', `/users/${username}/gists`, null, cb); - } - - /** - * List the repositories in an organization - * @see https://developer.github.com/v3/repos/#list-organization-repositories - * @param {string} orgname - the name of the organization - * @param {Requestable.callback} [cb] - will receive the list of repositories - * @return {Promise} - the promise for the http request - */ - orgRepos(orgname, cb) { - let requestOptions = this._getOptionsWithDefaults({direction: 'desc'}); - - return this._requestAllPages(`/orgs/${orgname}/repos`, requestOptions, cb); + return this._requestAllPages(this.__getScopedUrl('starred'), requestOptions, cb); } /** - * Follow a user + * Have the authenticated user follow this user * @see https://developer.github.com/v3/users/followers/#follow-a-user * @param {string} username - the user to follow * @param {Requestable.callback} [cb] - will receive true if the request succeeds * @return {Promise} - the promise for the http request */ follow(username, cb) { - return this._request('PUT', `/user/following/${username}`, null, cb); + return this._request('PUT', `/user/following/${this.__user}`, null, cb); } /** - * Unfollow a user + * Have the currently authenticated user unfollow this user * @see https://developer.github.com/v3/users/followers/#follow-a-user * @param {string} username - the user to unfollow * @param {Requestable.callback} [cb] - receives true if the request succeeds * @return {Promise} - the promise for the http request */ unfollow(username, cb) { - return this._request('DELETE', `/user/following/${username}`, null, cb); + return this._request('DELETE', `/user/following/${this.__user}`, null, cb); } /** - * Create a new user repository + * Create a new repository for the currently authenticated user * @see https://developer.github.com/v3/repos/#create * @param {object} options - the repository definition * @param {Requestable.callback} [cb] - will receive the API response diff --git a/package.json b/package.json index d1d3ed13..9c3f4f69 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.11.2", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", - "main": "src/github.js", + "main": "dist/components/GitHub.js", "contributors": [ "Ændrew Rininsland (http://www.aendrew.com)", "Aurelio De Rosa (http://www.audero.it/)", @@ -15,11 +15,12 @@ "clean": "gulp clean", "build": "gulp build", "test": "mocha --opts ./mocha.opts test/*.spec.js", - "test-verbose": "DEBUG=github* mocha test/*.spec.js", + "test-verbose": "DEBUG=github* npm test", + "test-browser": "", "lint": "gulp lint", + "generate-docs": "node_modules/.bin/jsdoc -c .jsdoc.json --verbose", "codecov": "node_modules/.bin/codecov", - "show-coverage-html": "open coverage/lcov-report/index.html", - "generate-docs": "node_modules/.bin/jsdoc -c .jsdoc.json --verbose" + "show-coverage-html": "open coverage/lcov-report/index.html" }, "babel": { "presets": [ @@ -41,8 +42,13 @@ } } }, + "files": [ + "dist/*", + "lib/*" + ], "dependencies": { - "axios": "https://github.com/github-tools/axios.git", + "axios": "^0.10.0", + "debug": "^2.2.0", "es6-promise": "^3.0.2", "js-base64": "^2.1.9", "utf8": "^2.1.1" @@ -52,7 +58,7 @@ "babel-plugin-transform-es2015-modules-umd": "^6.5.0", "babel-preset-es2015": "^6.5.0", "babel-register": "^6.7.2", - "babelify": "^7.2.0", + "babelify": "^7.3.0", "browserify": "^13.0.0", "codecov": "^1.0.1", "del": "^2.2.0", @@ -61,11 +67,9 @@ "gulp-eslint": "^2.0.0", "gulp-jscs": "^3.0.2", "gulp-jscs-stylish": "^1.3.0", - "gulp-jshint": "^2.0.0", "gulp-rename": "^1.2.2", "gulp-sourcemaps": "^1.6.0", "gulp-uglify": "^1.5.1", - "istanbul": "^0.4.3", "jsdoc": "^3.4.0", "minami": "^1.1.1", "mocha": "^2.3.4", diff --git a/test/auth.spec.js b/test/auth.spec.js index a24b5dbd..5f77d365 100644 --- a/test/auth.spec.js +++ b/test/auth.spec.js @@ -1,6 +1,6 @@ import expect from 'must'; -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; import {assertSuccessful, assertFailure} from './helpers/callbacks'; @@ -25,7 +25,7 @@ describe('Github', function() { }); it('should authenticate and return no errors', function(done) { - user.notifications(assertSuccessful(done)); + user.getNotifications(assertSuccessful(done)); }); }); @@ -82,7 +82,7 @@ describe('Github', function() { }); it('should fail authentication and return err', function(done) { - user.notifications(assertFailure(done, function(err) { + user.getNotifications(assertFailure(done, function(err) { expect(err.status).to.be.equal(401, 'Return 401 status for bad auth'); expect(err.response.data.message).to.equal('Bad credentials'); diff --git a/test/dist.spec/index.html b/test/dist.spec/index.html new file mode 100644 index 00000000..da5a21de --- /dev/null +++ b/test/dist.spec/index.html @@ -0,0 +1,31 @@ + + + + Mocha Tests + + + +
+ + + + + + + + diff --git a/test/gist.spec.js b/test/gist.spec.js index 880d42bc..01ee5644 100644 --- a/test/gist.spec.js +++ b/test/gist.spec.js @@ -1,6 +1,6 @@ import expect from 'must'; -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; import testGist from './fixtures/gist.json'; import {assertSuccessful} from './helpers/callbacks'; diff --git a/test/helpers/callbacks.js b/test/helpers/callbacks.js index bd7d0143..1f9c3dc7 100644 --- a/test/helpers/callbacks.js +++ b/test/helpers/callbacks.js @@ -5,12 +5,12 @@ const STANDARD_DELAY = 200; // 200ms between nested calls to the API so things s export function assertSuccessful(done, cb) { return function successCallback(err, res, xhr) { try { - expect(err).not.to.exist(); + expect(err).not.to.exist(err ? err.response.data : 'No error'); expect(res).to.exist(); expect(xhr).to.be.an.object(); if (cb) { - setTimeout(function() { + setTimeout(function delay() { cb(err, res, xhr); }, STANDARD_DELAY); } else { @@ -30,7 +30,7 @@ export function assertFailure(done, cb) { expect(err.request).to.exist(); if (cb) { - setTimeout(function() { + setTimeout(function delay() { cb(err); }, STANDARD_DELAY); } else { @@ -41,3 +41,10 @@ export function assertFailure(done, cb) { } }; } + +export function assertArray(done) { + return assertSuccessful(done, function isArray(err, result) { + expect(result).to.be.an.array(); + done(); + }); +} diff --git a/test/helpers/getTestRepoName.js b/test/helpers/getTestRepoName.js new file mode 100644 index 00000000..620f14a6 --- /dev/null +++ b/test/helpers/getTestRepoName.js @@ -0,0 +1,4 @@ +module.exports = function() { + let date = new Date(); + return date.getTime() + '-' + Math.floor(Math.random() * 100000).toString(); +}; diff --git a/test/issue.spec.js b/test/issue.spec.js index b8ff0ad1..af911777 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -1,13 +1,13 @@ import expect from 'must'; -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; import {assertSuccessful} from './helpers/callbacks'; describe('Issue', function() { let github; let remoteIssues; - let remoteIssue; + let remoteIssueId; before(function() { github = new Github({ @@ -21,17 +21,17 @@ describe('Issue', function() { describe('reading', function() { it('should list issues', function(done) { - remoteIssues.list({}, assertSuccessful(done, function(err, issues) { + remoteIssues.listIssues({}, assertSuccessful(done, function(err, issues) { expect(issues).to.be.an.array(); - remoteIssue = issues[0]; + remoteIssueId = issues[0].number; done(); })); }); it('should get issue', function(done) { - remoteIssues.get(remoteIssue.number, assertSuccessful(done, function(err, issue) { - expect(issue).to.have.own('number', remoteIssue.number); + remoteIssues.getIssue(remoteIssueId, assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('number', remoteIssueId); done(); })); @@ -50,7 +50,7 @@ describe('Issue', function() { body: 'New issue body' }; - remoteIssues.create(newIssue, assertSuccessful(done, function(err, issue) { + remoteIssues.createIssue(newIssue, assertSuccessful(done, function(err, issue) { expect(issue).to.have.own('url'); expect(issue).to.have.own('title', newIssue.title); expect(issue).to.have.own('body', newIssue.body); @@ -60,7 +60,7 @@ describe('Issue', function() { }); it('should post issue comment', function(done) { - remoteIssues.comment(remoteIssue, 'Comment test', assertSuccessful(done, function(err, issue) { + remoteIssues.createIssueComment(remoteIssueId, 'Comment test', assertSuccessful(done, function(err, issue) { expect(issue).to.have.own('body', 'Comment test'); done(); @@ -72,7 +72,7 @@ describe('Issue', function() { title: 'Edited title' }; - remoteIssues.edit(remoteIssue.number, newProps, assertSuccessful(done, function(err, issue) { + remoteIssues.editIssue(remoteIssueId, newProps, assertSuccessful(done, function(err, issue) { expect(issue).to.have.own('title', newProps.title); done(); diff --git a/test/organization.spec.js b/test/organization.spec.js index b687d4c6..760e8ac9 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -1,13 +1,13 @@ -// jscs:disable requireCamelCaseOrUpperCaseIdentifiers import expect from 'must'; -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; -import {assertSuccessful} from './helpers/callbacks'; +import {assertSuccessful, assertArray} from './helpers/callbacks'; +import getTestRepoName from './helpers/getTestRepoName'; +// jscs:disable requireCamelCaseOrUpperCaseIdentifiers describe('Organization', function() { let github; - let organization; before(function() { github = new Github({ @@ -16,26 +16,44 @@ describe('Organization', function() { auth: 'basic' }); - organization = github.getOrg(); }); - it('should create an organisation repo', function(done) { - const testRepoName = Math.floor(Math.random() * 100000).toString(); - const options = { - orgname: testUser.ORGANIZATION, - name: testRepoName, - description: 'test create organization repo', - homepage: 'https://github.com/', - private: false, - has_issues: true, - has_wiki: true, - has_downloads: true - }; - - organization.createRepo(options, assertSuccessful(done, function(err, repo) { - expect(repo.name).to.equal(testRepoName); - expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); - done(); - })); + describe('reading', function() { + let organization; + + before(function() { + organization = github.getOrganization('openaddresses'); + }); + + it('should show user\'s organisation repos', function(done) { + organization.getRepos(assertArray(done)); + }); + }); + + describe('creating/updating', function() { + let organization; + const testRepoName = getTestRepoName(); + + before(function() { + organization = github.getOrganization(testUser.ORGANIZATION); + }); + + it('should create an organisation repo', function(done) { + const options = { + name: testRepoName, + description: 'test create organization repo', + homepage: 'https://github.com/', + private: false, + has_issues: true, + has_wiki: true, + has_downloads: true + }; + + organization.createRepo(options, assertSuccessful(done, function(err, repo) { + expect(repo.name).to.equal(testRepoName); + expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); + done(); + })); + }); }); }); diff --git a/test/rate-limit.spec.js b/test/rate-limit.spec.js index 6fa75dc4..23e12d14 100644 --- a/test/rate-limit.spec.js +++ b/test/rate-limit.spec.js @@ -1,6 +1,6 @@ import expect from 'must'; -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; import {assertSuccessful} from './helpers/callbacks'; diff --git a/test/repository.spec.js b/test/repository.spec.js index 5e2a780e..d097d431 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -1,9 +1,10 @@ import expect from 'must'; -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; import loadImage from './fixtures/imageBlob'; import {assertSuccessful, assertFailure} from './helpers/callbacks'; +import getTestRepoName from './helpers/getTestRepoName'; describe('Repository', function() { let github; @@ -11,7 +12,7 @@ describe('Repository', function() { let user; let imageB64; let imageBlob; - const testRepoName = Math.floor(Math.random() * 100000).toString(); + const testRepoName = getTestRepoName(); const v10SHA = '20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; const statusUrl = 'https://api.github.com/repos/michael/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; @@ -33,8 +34,8 @@ describe('Repository', function() { remoteRepo = github.getRepo('michael', 'github'); }); - it('should show repo', function(done) { - remoteRepo.show(assertSuccessful(done, function(err, repo) { + it('should get repo details', function(done) { + remoteRepo.getDetails(assertSuccessful(done, function(err, repo) { expect(repo).to.have.own('full_name', 'michael/github'); done(); @@ -52,7 +53,7 @@ describe('Repository', function() { }); it('should show repo contents', function(done) { - remoteRepo.contents('master', '', assertSuccessful(done, function(err, contents) { + remoteRepo.getContents('master', '', false, assertSuccessful(done, function(err, contents) { expect(contents).to.be.an.array(); const readme = contents.filter(function(content) { @@ -66,6 +67,18 @@ describe('Repository', function() { })); }); + it('should show repo content raw', function(done) { + remoteRepo.getContents('master', 'README.md', 'raw', assertSuccessful(done, function(err, text) { + expect(text).to.contain('# Github.js'); + + done(); + })); + }); + + it('should get ref from repo', function(done) { + remoteRepo.getRef('heads/master', assertSuccessful(done)); + }); + it('should get tree', function(done) { remoteRepo.getTree('master', assertSuccessful(done, function(err, response) { let {tree} = response; @@ -89,7 +102,7 @@ describe('Repository', function() { }); it('should list commits with no options', function(done) { - remoteRepo.getCommits(null, assertSuccessful(done, function(err, commits) { + remoteRepo.listCommits(null, assertSuccessful(done, function(err, commits) { expect(commits).to.be.an.array(); expect(commits.length).to.be.above(0); @@ -111,7 +124,7 @@ describe('Repository', function() { until }; - remoteRepo.getCommits(options, assertSuccessful(done, function(err, commits) { + remoteRepo.listCommits(options, assertSuccessful(done, function(err, commits) { expect(commits).to.be.an.array(); expect(commits.length).to.be.above(0); @@ -126,7 +139,7 @@ describe('Repository', function() { }); it('should show repo contributors', function(done) { - remoteRepo.contributors(assertSuccessful(done, function(err, contributors) { + remoteRepo.getContributors(assertSuccessful(done, function(err, contributors) { expect(contributors).to.be.an.array(); expect(contributors.length).to.be.above(1); @@ -146,16 +159,8 @@ describe('Repository', function() { remoteRepo.listBranches(assertSuccessful(done)); }); - it('should read repo', function(done) { - remoteRepo.read('master', 'README.md', assertSuccessful(done, function(err, text) { - expect(text).to.contain('# Github.js'); - - done(); - })); - }); - it('should get commit from repo', function(done) { - remoteRepo.getCommit('master', v10SHA, assertSuccessful(done, function(err, commit) { + remoteRepo.getCommit(v10SHA, assertSuccessful(done, function(err, commit) { expect(commit.message).to.equal('v0.10.4'); expect(commit.author.date).to.equal('2015-03-20T17:01:42Z'); @@ -164,7 +169,7 @@ describe('Repository', function() { }); it('should get statuses for a SHA from a repo', function(done) { - remoteRepo.getStatuses(v10SHA, assertSuccessful(done, function(err, statuses) { + remoteRepo.listStatuses(v10SHA, assertSuccessful(done, function(err, statuses) { expect(statuses).to.be.an.array(); expect(statuses.length).to.equal(6); @@ -185,7 +190,7 @@ describe('Repository', function() { it('should get a repo by fullname', function(done) { const repoByName = github.getRepo('michael/github'); - repoByName.show(assertSuccessful(done, function(err, repo) { + repoByName.getDetails(assertSuccessful(done, function(err, repo) { expect(repo).to.have.own('full_name', 'michael/github'); done(); @@ -193,7 +198,7 @@ describe('Repository', function() { }); it('should check if the repo is starred', function(done) { - remoteRepo.isStarred('michael', 'github', assertSuccessful(done, function(err, result) { + remoteRepo.isStarred(assertSuccessful(done, function(err, result) { expect(result).to.equal(false); done(); @@ -248,7 +253,7 @@ describe('Repository', function() { }); it('should show repo collaborators', function(done) { - remoteRepo.collaborators(assertSuccessful(done, function(err, collaborators) { + remoteRepo.getCollaborators(assertSuccessful(done, function(err, collaborators) { expect(collaborators).to.be.an.array(); expect(collaborators).to.have.length(1); @@ -267,8 +272,8 @@ describe('Repository', function() { }); it('should write to repo', function(done) { - remoteRepo.write('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { - remoteRepo.read('master', fileName, assertSuccessful(done, function(err, fileText) { + remoteRepo.writeFile('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { + remoteRepo.getContents('master', fileName, 'raw', assertSuccessful(done, function(err, fileText) { expect(fileText).to.be(initialText); done(); @@ -277,7 +282,7 @@ describe('Repository', function() { }); it('should create a new branch', function(done) { - remoteRepo.branch('master', 'dev', assertSuccessful(done, function(err, branch) { + remoteRepo.createBranch('master', 'dev', assertSuccessful(done, function(err, branch) { expect(branch).to.have.property('ref', 'refs/heads/dev'); expect(branch.object).to.have.property('sha'); @@ -286,8 +291,8 @@ describe('Repository', function() { }); it('should write to repo branch', function(done) { - remoteRepo.write('dev', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { - remoteRepo.read('dev', fileName, assertSuccessful(done, function(err, fileText) { + remoteRepo.writeFile('dev', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.getContents('dev', fileName, 'raw', assertSuccessful(done, function(err, fileText) { expect(fileText).to.be(updatedText); done(); @@ -296,9 +301,9 @@ describe('Repository', function() { }); it('should compare two branches', function(done) { - remoteRepo.branch('master', 'compare', assertSuccessful(done, function() { - remoteRepo.write('compare', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { - remoteRepo.compare('master', 'compare', assertSuccessful(done, function(err, diff) { + remoteRepo.createBranch('master', 'compare', assertSuccessful(done, function() { + remoteRepo.writeFile('compare', fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.compareBranches('master', 'compare', assertSuccessful(done, function(err, diff) { expect(diff).to.have.own('total_commits', 1); expect(diff.files[0]).to.have.own('filename', fileName); @@ -315,8 +320,8 @@ describe('Repository', function() { const body = 'This is a test pull request'; const prSpec = {title, body, base, head}; - remoteRepo.branch(base, head, assertSuccessful(done, function() { - remoteRepo.write(head, fileName, updatedText, updatedMessage, assertSuccessful(done, function() { + remoteRepo.createBranch(base, head, assertSuccessful(done, function() { + remoteRepo.writeFile(head, fileName, updatedText, updatedMessage, assertSuccessful(done, function() { remoteRepo.createPullRequest(prSpec, assertSuccessful(done, function(err, pullRequest) { expect(pullRequest).to.have.own('number'); expect(pullRequest.number).to.be.above(0); @@ -329,10 +334,6 @@ describe('Repository', function() { })); }); - it('should get ref from repo', function(done) { - remoteRepo.getRef('heads/master', assertSuccessful(done)); - }); - it('should create ref on repo', function(done) { remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, refSpec) { let newRef = { @@ -360,7 +361,7 @@ describe('Repository', function() { per_page: 10 // jscs:ignore }; - remoteRepo.listPulls(filterOpts, assertSuccessful(done, function(err, pullRequests) { + remoteRepo.listPullRequests(filterOpts, assertSuccessful(done, function(err, pullRequests) { expect(pullRequests).to.be.an.array(); expect(pullRequests).to.have.length(1); @@ -371,7 +372,7 @@ describe('Repository', function() { it('should get pull requests on repo', function(done) { const repo = github.getRepo('michael', 'github'); - repo.getPull(153, assertSuccessful(done, function(err, pr) { + repo.getPullRequest(153, assertSuccessful(done, function(err, pr) { expect(pr).to.have.own('title'); expect(pr).to.have.own('body'); expect(pr).to.have.own('url'); @@ -381,8 +382,8 @@ describe('Repository', function() { }); it('should delete a file on the repo', function(done) { - remoteRepo.write('master', fileToDelete, initialText, deleteMessage, assertSuccessful(done, function() { - remoteRepo.remove('master', fileToDelete, assertSuccessful(done)); + remoteRepo.writeFile('master', fileToDelete, initialText, deleteMessage, assertSuccessful(done, function() { + remoteRepo.deleteFile('master', fileToDelete, assertSuccessful(done)); })); }); @@ -392,27 +393,30 @@ describe('Repository', function() { committer: {name: 'Committer Name', email: 'committer@example.com'} }; - remoteRepo.write('dev', fileName, initialText, initialMessage, options, assertSuccessful(done, function(e, r) { - remoteRepo.getCommit('dev', r.commit.sha, assertSuccessful(done, function(err, commit) { - const author = commit.author; - const committer = commit.committer; - expect(author.name).to.be('Author Name'); - expect(author.email).to.be('author@example.com'); - expect(committer.name).to.be('Committer Name'); - expect(committer.email).to.be('committer@example.com'); + remoteRepo.writeFile('dev', + fileName, initialText, initialMessage, options, + assertSuccessful(done, function(error, commit) { + remoteRepo.getCommit(commit.commit.sha, assertSuccessful(done, function(err, commit2) { + const author = commit2.author; + const committer = commit2.committer; + expect(author.name).to.be('Author Name'); + expect(author.email).to.be('author@example.com'); + expect(committer.name).to.be('Committer Name'); + expect(committer.email).to.be('committer@example.com'); - done(); - })); - })); + done(); + })); + }) + ); }); it('should be able to write all the unicode', function(done) { - remoteRepo.write('master', unicodeFileName, unicodeText, unicodeMessage, assertSuccessful(done, + remoteRepo.writeFile('master', unicodeFileName, unicodeText, unicodeMessage, assertSuccessful(done, function(err, commit) { expect(commit.content.name).to.be(unicodeFileName); expect(commit.commit.message).to.be(unicodeMessage); - remoteRepo.read('master', unicodeFileName, assertSuccessful(done, function(err, fileText) { + remoteRepo.getContents('master', unicodeFileName, 'raw', assertSuccessful(done, function(err, fileText) { expect(fileText).to.be(unicodeText); done(); @@ -448,7 +452,7 @@ describe('Repository', function() { encode: false }; - remoteRepo.write('master', imageFileName, imageB64, initialMessage, opts, assertSuccessful(done, + remoteRepo.writeFile('master', imageFileName, imageB64, initialMessage, opts, assertSuccessful(done, function(err, commit) { sha = commit.sha; @@ -457,22 +461,22 @@ describe('Repository', function() { }); it('should be able to write a string blob to the repo', function(done) { - remoteRepo.postBlob('String test', assertSuccessful(done)); + remoteRepo.createBlob('String test', assertSuccessful(done)); }); it('should be able to write a file blob to the repo', function(done) { - remoteRepo.postBlob(imageBlob, assertSuccessful(done)); + remoteRepo.createBlob(imageBlob, assertSuccessful(done)); }); it('should star the repo', function(done) { - remoteRepo.star(testUser.USERNAME, testRepoName, assertSuccessful(done, function() { - remoteRepo.isStarred(testUser.USERNAME, testRepoName, assertSuccessful(done)); + remoteRepo.star(assertSuccessful(done, function() { + remoteRepo.isStarred(assertSuccessful(done)); })); }); it('should unstar the repo', function(done) { - remoteRepo.unstar(testUser.USERNAME, testRepoName, assertSuccessful(done, function() { - remoteRepo.isStarred(testUser.USERNAME, testRepoName, assertSuccessful(done, function(_, isStarred) { + remoteRepo.unstar(assertSuccessful(done, function() { + remoteRepo.isStarred(assertSuccessful(done, function(_, isStarred) { expect(isStarred).to.be(false); done(); })); @@ -488,6 +492,7 @@ describe('Repository', function() { it('should create a release', function(done) { const releaseDef = { + name: releaseName, tag_name: releaseTag, // jscs:ignore target_commitish: sha // jscs:ignore }; @@ -504,7 +509,7 @@ describe('Repository', function() { body: releaseBody }; - remoteRepo.editRelease(releaseId, releaseDef, assertSuccessful(done, function(err, release) { + remoteRepo.updateRelease(releaseId, releaseDef, assertSuccessful(done, function(err, release) { expect(release).to.have.own('name', releaseName); expect(release).to.have.own('body', releaseBody); diff --git a/test/search.spec.js b/test/search.spec.js index 6838b13e..bab9740d 100644 --- a/test/search.spec.js +++ b/test/search.spec.js @@ -1,4 +1,4 @@ -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; import {assertSuccessful} from './helpers/callbacks'; @@ -21,14 +21,14 @@ describe('Search', function() { }); let options = undefined; - search.repositories(options, assertSuccessful(done)); + search.forRepositories(options, assertSuccessful(done)); }); it('should search code', function(done) { let search = github.search({q: 'addClass in:file language:js repo:jquery/jquery'}); let options = undefined; - search.code(options, assertSuccessful(done)); + search.forCode(options, assertSuccessful(done)); }); it('should search issues', function(done) { @@ -39,13 +39,13 @@ describe('Search', function() { }); let options = undefined; - search.issues(options, assertSuccessful(done)); + search.forIssues(options, assertSuccessful(done)); }); it('should search users', function(done) { let search = github.search({q: 'tom repos:>42 followers:>1000'}); let options = undefined; - search.users(options, assertSuccessful(done)); + search.forUsers(options, assertSuccessful(done)); }); }); diff --git a/test/user.spec.js b/test/user.spec.js index c3e584e0..c318aa0a 100644 --- a/test/user.spec.js +++ b/test/user.spec.js @@ -1,15 +1,6 @@ -import expect from 'must'; - -import Github from '../src/Github'; +import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; -import {assertSuccessful} from './helpers/callbacks'; - -function assertArray(done) { - return assertSuccessful(done, function(err, result) { - expect(result).to.be.an.array(); - done(); - }); -} +import {assertSuccessful, assertArray} from './helpers/callbacks'; describe('User', function() { let github; @@ -25,7 +16,7 @@ describe('User', function() { }); it('should get user repos', function(done) { - user.repos(assertArray(done)); + user.getRepos(assertArray(done)); }); it('should get user repos with options', function(done) { @@ -36,19 +27,19 @@ describe('User', function() { page: 10 }; - user.repos(filterOpts, assertArray(done)); + user.getRepos(filterOpts, assertArray(done)); }); it('should get user orgs', function(done) { - user.orgs(assertArray(done)); + user.getOrgs(assertArray(done)); }); it('should get user gists', function(done) { - user.gists(assertArray(done)); + user.getGists(assertArray(done)); }); it('should get user notifications', function(done) { - user.notifications(assertArray(done)); + user.getNotifications(assertArray(done)); }); it('should get user notifications with options', function(done) { @@ -59,38 +50,15 @@ describe('User', function() { before: '2015-02-01T00:00:00Z' }; - user.notifications(filterOpts, assertArray(done)); - }); - - it('should show user', function(done) { - user.show('ingalls', assertSuccessful(done)); + user.getNotifications(filterOpts, assertArray(done)); }); - it('should show user\'s repos', function(done) { - user.userRepos('aendrew', assertArray(done)); - }); - - it('should show user\'s repos with options', function(done) { - const filterOpts = { - type: 'owner', - sort: 'updated', - per_page: 90, // jscs:ignore - page: 1 - }; - - user.userRepos('aendrew', filterOpts, assertArray(done)); + it('should get the user\'s profile', function(done) { + user.getProfile(assertSuccessful(done)); }); it('should show user\'s starred repos', function(done) { - user.userStarred(testUser.USERNAME, assertArray(done)); - }); - - it('should show user\'s gists', function(done) { - user.userGists(testUser.USERNAME, assertArray(done)); - }); - - it('should show user\'s organisation repos', function(done) { - user.orgRepos('openaddresses', assertArray(done)); + user.getStarredRepos(assertArray(done)); }); it('should follow user', function(done) { From 1e817b11fd6e97857c8848031147bc9dfa2a8e04 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 27 Apr 2016 15:46:46 -0500 Subject: [PATCH 010/137] Update the readme --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 478dc29a..7428cdab 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,17 @@ # Github.js [![Downloads per month](https://img.shields.io/npm/dm/github-api.svg?maxAge=2592000)][npm-package] -[![Latest version](https://img.shields.io/npm/v/github-api.svg?maxAge=2592000)][npm-package] +[![Latest version](https://img.shields.io/npm/v/github-api.svg?maxAge=3600)][npm-package] [![Gitter](https://img.shields.io/gitter/room/michael/github.js.svg?maxAge=2592000)][gitter] -[![Travis](https://img.shields.io/travis/michael/github.svg?maxAge=2592000)][travis-ci] -[![Codecov](https://img.shields.io/codecov/c/github/michael/github.svg?maxAge=2592000)][codecov] +[![Travis](https://img.shields.io/travis/michael/github.svg?maxAge=60)][travis-ci] + Github.js provides a minimal higher-level wrapper around Github's API. It was concieved in the context of [Prose][prose], a content editor for GitHub. +## Docs +Read the [docs][docs] + ## Installation Github.js is available from `npm` or (soon) [cdnjs][cdnjs]. @@ -105,3 +108,4 @@ yahoo.getRepos(function(err, repos) { [npm-package]: https://www.npmjs.com/package/github-api [prose]: http://prose.io [xhr-link]: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx +[docs]: http://clayreimann.me/github/ From bc624225b36910a22306ff2089348de0e103f652 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 27 Apr 2016 15:47:33 -0500 Subject: [PATCH 011/137] 1.0.0 --- .travis.yml | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 48cb5941..3ee3bdd3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,5 +23,6 @@ deploy: skip_cleanup: true on: tags: true + email: clayreimann@gmail.com api_key: secure: TZHqJ9Kh2Qf0GAVDjEOQ01Ez6rGMYHKwVLOKTbnb7nSzF7iiGNT4UwzvYawm0T9p1k7X1WOqW3l7OEbIwoKl7/9azT4BBJm7qUMRfB9Zio5cL3rKubJVz7+LEEIW4iBeDWLanhUDgy9BO2JKCt8bfp/U2tltgXtu9Fm/UFPALI8= diff --git a/package.json b/package.json index 9c3f4f69..5f094210 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "0.11.2", + "version": "1.0.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From da54c02a7323aa503f66fce3d4a3eafce3c01bc9 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 29 Apr 2016 16:37:04 -0500 Subject: [PATCH 012/137] docs: point docs link to gh-pages for this repo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7428cdab..44765f02 100644 --- a/README.md +++ b/README.md @@ -108,4 +108,4 @@ yahoo.getRepos(function(err, repos) { [npm-package]: https://www.npmjs.com/package/github-api [prose]: http://prose.io [xhr-link]: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx -[docs]: http://clayreimann.me/github/ +[docs]: http://michael.github.io/github/ From 37084d7a2f9be16b66e4d29c07e767ff0d14e14c Mon Sep 17 00:00:00 2001 From: Kenshi Kamata Date: Tue, 3 May 2016 03:07:50 +0900 Subject: [PATCH 013/137] feature(gist): add comment-related features to Gist * Add API to list all of a gist's comments * Allow CRUD-ing comments on gists --- lib/Gist.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++ test/gist.spec.js | 35 +++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/lib/Gist.js b/lib/Gist.js index d92cc678..64d756a8 100644 --- a/lib/Gist.js +++ b/lib/Gist.js @@ -107,6 +107,63 @@ class Gist extends Requestable { isStarred(cb) { return this._request204or404(`/gists/${this.__id}/star`, null, cb); } + + + + /** + * List the comments on a gist + * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist + * @param {Requestable.callback} [cb] - will receive the array of comments + * @return {Promise} - the promise for the http request + */ + listComments(cb) { + return this._requestAllPages(`/gists/${this.__id}/comments`, null, cb); + } + + /** + * Fetch a comment of the gist + * @see https://developer.github.com/v3/gists/comments/#get-a-single-comment + * @param {number} comment - the id of the comment + * @param {Requestable.callback} [cb] - will receive the comment + * @return {Promise} - the Promise for the http request + */ + getComment(comment, cb) { + return this._request('GET', `/gists/${this.__id}/comments/${comment}`, null, cb); + } + + /** + * Create Comment to a gist. + * @see https://developer.github.com/v3/gists/comments/#create-a-comment + * @param {string} comment - the comment to add + * @param {Requestable.callback} [cb] - the function that receives the API result + * @return {Promise} - the Promise for the http request + */ + createComment(comment, cb) { + return this._request('POST', `/gists/${this.__id}/comments`, {body: comment}, cb); + } + + /** + * Edit a Gist Comment + * @see https://developer.github.com/v3/gists/comments/#edit-a-comment + * @param {number} comment - the id of the comment + * @param {string} body - the new comment + * @param {Requestable.callback} [cb] - will receive the modified issue + * @return {Promise} - the promise for the http request + */ + editComment(comment, body, cb) { + return this._request('PATCH', `/gists/${this.__id}/comments/${comment}`, {body: body}, cb); + } + + /** + * Delete a comment of a gist. + * @see https://developer.github.com/v3/gists/comments/#delete-a-comment + * @param {number} comment - the id of the comment + * @param {Requestable.callback} [cb] - will receive true if the request succeeds + * @return {Promise} - the Promise for the http request + */ + deleteComment(comment, cb) { + return this._request('DELETE', `/gists/${this.__id}/comments/${comment}`, null, cb); + } } module.exports = Gist; diff --git a/test/gist.spec.js b/test/gist.spec.js index 01ee5644..cd503ca4 100644 --- a/test/gist.spec.js +++ b/test/gist.spec.js @@ -9,6 +9,7 @@ describe('Gist', function() { let gist; let gistId; let github; + let commentId; before(function() { github = new Github({ @@ -64,6 +65,40 @@ describe('Gist', function() { })); })); }); + + it('should create a comment a gist', function(done) { + gist.createComment("Comment test", assertSuccessful(done, function(err, comment) { + expect(comment).to.have.own('body', 'Comment test'); + commentId = comment.id + done(); + })); + }); + + it('should list comments', function(done) { + gist.listComments(assertSuccessful(done, function(err, comments) { + expect(comments).to.be.an.array(); + done(); + })); + }); + + it('should get comment', function(done) { + gist.getComment(commentId, assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('id', commentId); + done(); + })); + }); + + it('should edit comment', function(done) { + const newComment = 'new comment test'; + gist.editComment(commentId, newComment, assertSuccessful(done, function(err, comment) { + expect(comment).to.have.own('body', newComment); + done(); + })); + }); + + it('should delete comment', function(done) { + gist.deleteComment(commentId, assertSuccessful(done)); + }); }); describe('deleting', function() { From 7bbe75d3a75de7e2cb08ceaa0613120bf5c6dde5 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Tue, 3 May 2016 09:22:18 -0400 Subject: [PATCH 014/137] bugfix(repo): return a Promise from deleteFile Fix the bug in which deleteFile doesn't currently return anything --- lib/Repository.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index 838cd5e8..db1f2509 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -489,7 +489,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteFile(branch, path, cb) { - this.getSha(branch, path) + return this.getSha(branch, path) .then((response) => { const deleteCommit = { message: `Delete the file at '${path}'`, From 213447d0807069935b5ede063998cf7efacb5536 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 3 May 2016 08:46:10 -0500 Subject: [PATCH 015/137] chore: update .gitignore for gh-pages artifacts * tweak documentation comments for new comment-related Gist functions --- .gitignore | 2 ++ lib/Gist.js | 14 ++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 1f5a1c95..6d462a19 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.sass-cache/ +_site/ docs/ dist/ coverage/ diff --git a/lib/Gist.js b/lib/Gist.js index 64d756a8..14b71322 100644 --- a/lib/Gist.js +++ b/lib/Gist.js @@ -108,10 +108,8 @@ class Gist extends Requestable { return this._request204or404(`/gists/${this.__id}/star`, null, cb); } - - /** - * List the comments on a gist + * List the gist's comments * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist * @param {Requestable.callback} [cb] - will receive the array of comments * @return {Promise} - the promise for the http request @@ -121,7 +119,7 @@ class Gist extends Requestable { } /** - * Fetch a comment of the gist + * Fetch one of the gist's comments * @see https://developer.github.com/v3/gists/comments/#get-a-single-comment * @param {number} comment - the id of the comment * @param {Requestable.callback} [cb] - will receive the comment @@ -132,7 +130,7 @@ class Gist extends Requestable { } /** - * Create Comment to a gist. + * Comment on a gist * @see https://developer.github.com/v3/gists/comments/#create-a-comment * @param {string} comment - the comment to add * @param {Requestable.callback} [cb] - the function that receives the API result @@ -143,11 +141,11 @@ class Gist extends Requestable { } /** - * Edit a Gist Comment + * Edit a comment on the gist * @see https://developer.github.com/v3/gists/comments/#edit-a-comment * @param {number} comment - the id of the comment * @param {string} body - the new comment - * @param {Requestable.callback} [cb] - will receive the modified issue + * @param {Requestable.callback} [cb] - will receive the modified comment * @return {Promise} - the promise for the http request */ editComment(comment, body, cb) { @@ -155,7 +153,7 @@ class Gist extends Requestable { } /** - * Delete a comment of a gist. + * Delete a comment on the gist. * @see https://developer.github.com/v3/gists/comments/#delete-a-comment * @param {number} comment - the id of the comment * @param {Requestable.callback} [cb] - will receive true if the request succeeds From ae8d5ebfb5244edf00d41b44288efd8d40f2441b Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 3 May 2016 08:46:18 -0500 Subject: [PATCH 016/137] 1.1.0 --- CHANGELOG.md | 22 +++++++++++++++++++--- package.json | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 075c2cdc..c6620644 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,22 @@ -## Change Log +# Change Log -### 1.0.0 +### Features + +### Fixes + +## 1.1.0 - 2015/05/03 +### Features +Added methods for commenting on Gists: +* `Gist.listComments` +* `Gist.getComment` +* `Gist.editComment` +* `Gist.deleteComment` +* `Gist.createComment` + +### Fixes +* `Repository.deleteFile` now correctly returns a promise. + +## 1.0.0 - 2015/04/27 Complete rewrite in ES2015. * Promise-ified the API @@ -8,7 +24,7 @@ Complete rewrite in ES2015. * Modularized codebase * Refactored tests to run primarily in mocha -#### Breaking changes +### Breaking changes Most of the breaking changes are just methods that got renamed. The changes to `User` and `Organization` are deeper changes that now scope a particular `User` or `Organization` to the entity they were instantiated with. You will need separate `User`s to query data about different user accounts. diff --git a/package.json b/package.json index 5f094210..8cef2c2c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "1.0.0", + "version": "1.1.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From e404aebf2609c407df1819eddcb989273d7342d5 Mon Sep 17 00:00:00 2001 From: Bernhard Bezdek Date: Mon, 9 May 2016 17:11:50 +0200 Subject: [PATCH 017/137] feature(repository): add getReleases Closes #320 --- lib/Repository.js | 10 ++++++++++ test/repository.spec.js | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index db1f2509..96d26c71 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -629,6 +629,16 @@ class Repository extends Requestable { return this._request('PATCH', `/repos/${this.__fullname}/releases/${id}`, options, cb); } + /** + * Get information about all releases + * @see https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository + * @param {Requestable.callback} cb - will receive the release information + * @return {Promise} - the promise for the http request + */ + getReleases(cb) { + return this._request('GET', `/repos/${this.__fullname}/releases`, null, cb); + } + /** * Get information about a release * @see https://developer.github.com/v3/repos/releases/#get-a-single-release diff --git a/test/repository.spec.js b/test/repository.spec.js index d097d431..7448f78e 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -517,6 +517,13 @@ describe('Repository', function() { })); }); + it('should read all releases', function(done) { + remoteRepo.getReleases(assertSuccessful(done, function(err, releases) { + expect(releases).to.be.an.array(); + done(); + })); + }); + it('should read a release', function(done) { remoteRepo.getRelease(releaseId, assertSuccessful(done, function(err, release) { expect(release).to.have.own('name', releaseName); From 15c68a57e488574877a4201d1f3de11a1306eae7 Mon Sep 17 00:00:00 2001 From: Ray Hua Date: Wed, 11 May 2016 23:58:49 +1000 Subject: [PATCH 018/137] feature(comment): add list, get, edit and delete for issue comments --- lib/Issue.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ test/issue.spec.js | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/lib/Issue.js b/lib/Issue.js index 0acd7d4c..6b8ba6a3 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -44,6 +44,28 @@ class Issue extends Requestable { this._requestAllPages(`/repos/${this.__repository}/issues`, options, cb); } + /** + * List comments on an issue + * @see https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue + * @param {number} issue - the id of the issue to get comments from + * @param {Requestable.callback} [cb] - will receive the comments + * @return {Promise} - the promise for the http request + */ + listIssueComments(issue, cb) { + this._request('GET', `/repos/${this.__repository}/issues/${issue}/comments`, null, cb); // jscs:ignore + } + + /** + * Get a single comment on an issue + * @see https://developer.github.com/v3/issues/comments/#get-a-single-comment + * @param {number} id - the comment id to get + * @param {Requestable.callback} [cb] - will receive the comment + * @return {Promise} - the promise for the http request + */ + getIssueComment(id, cb) { + this._request('GET', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore + } + /** * Comment on an issue * @see https://developer.github.com/v3/issues/comments/#create-a-comment @@ -56,6 +78,29 @@ class Issue extends Requestable { this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb); // jscs:ignore } + /** + * Edit a comment on an issue + * @see https://developer.github.com/v3/issues/comments/#edit-a-comment + * @param {number} id - the comment id to edit + * @param {string} comment - the comment to edit + * @param {Requestable.callback} [cb] - will receive the edited comment + * @return {Promise} - the promise for the http request + */ + editIssueComment(id, comment, cb) { + this._request('PATCH', `/repos/${this.__repository}/issues/comments/${id}`, {body: comment}, cb); // jscs:ignore + } + + /** + * Delete a comment on an issue + * @see https://developer.github.com/v3/issues/comments/#delete-a-comment + * @param {number} id - the comment id to delete + * @param {Requestable.callback} [cb] - will receive true if the request is successful + * @return {Promise} - the promise for the http request + */ + deleteIssueComment(id, cb) { + this._request('DELETE', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore + } + /** * Edit an issue * @see https://developer.github.com/v3/issues/#edit-an-issue diff --git a/test/issue.spec.js b/test/issue.spec.js index af911777..bc0b224e 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -8,6 +8,7 @@ describe('Issue', function() { let github; let remoteIssues; let remoteIssueId; + let remoteIssueCommentId; before(function() { github = new Github({ @@ -38,7 +39,7 @@ describe('Issue', function() { }); }); - describe('creating/modifiying', function() { + describe('creating/modifiying/editing/deleting', function() { // 200ms between tests so that Github has a chance to settle beforeEach(function(done) { setTimeout(done, 200); @@ -67,6 +68,38 @@ describe('Issue', function() { })); }); + it('should list issue comments', function(done) { + remoteIssues.listIssueComments(remoteIssueId, assertSuccessful(done, function(err, comments) { + expect(comments).to.be.an.array(); + expect(comments[0]).to.have.own('body', 'Comment test'); + remoteIssueCommentId = comments[0].id + done(); + })); + }); + + it('should get a single issue comment', function(done) { + remoteIssues.getIssueComment(remoteIssueCommentId, assertSuccessful(done, function(err, comment) { + expect(comment).to.have.own('body', 'Comment test'); + done(); + })); + }); + + it('should edit issue comment', function(done) { + remoteIssues.editIssueComment(remoteIssueCommentId, 'Comment test edited', assertSuccessful(done, function(err, comment) { + expect(comment).to.have.own('body', 'Comment test edited'); + + done(); + })); + }); + + it('should delete issue comment', function(done) { + remoteIssues.deleteIssueComment(remoteIssueCommentId, assertSuccessful(done, function(err, response) { + expect(response).to.be.true; + + done(); + })); + }); + it('should edit issues title', function(done) { const newProps = { title: 'Edited title' From 25b95a6cb9720b3c91d90189d6369318cc8c54b2 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 09:12:10 -0500 Subject: [PATCH 019/137] feature(search): return all pages from a search Closes #302 --- lib/Requestable.js | 2 +- lib/Search.js | 21 +++++++++++++++------ test/search.spec.js | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/Requestable.js b/lib/Requestable.js index bd89910e..e447a7f7 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -203,7 +203,7 @@ class Requestable { _requestAllPages(path, options, cb, results) { results = results || []; - return this._request('GET', path, null) + return this._request('GET', path, options) .then((response) => { results.push.apply(results, response.data); diff --git a/lib/Search.js b/lib/Search.js index 0b61a8c3..f134087e 100644 --- a/lib/Search.js +++ b/lib/Search.js @@ -24,11 +24,20 @@ class Search extends Requestable { this.__defaults = this._getOptionsWithDefaults(defaults); } + /** + * Available search options + * @see https://developer.github.com/v3/search/#parameters + * @typedef {Object} Search.Params + * @param {string} q - the query to make + * @param {string} sort - the sort field, one of `stars`, `forks`, or `updated`. + * Default is [best match](https://developer.github.com/v3/search/#ranking-search-results) + * @param {string} order - the ordering, either `asc` or `desc` + */ /** * Perform a search on the GitHub API * @private * @param {string} path - the scope of the search - * @param {Object} [withOptions] - additional parameters for the search + * @param {Search.Params} [withOptions] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ @@ -38,13 +47,13 @@ class Search extends Requestable { Object.keys(withOptions).forEach((prop) => requestOptions[prop] = withOptions[prop]); log(`searching ${path} with options:`, requestOptions); - return this._request('GET', `/search/${path}`, requestOptions, cb); + return this._requestAllPages(`/search/${path}`, requestOptions, cb); } /** * Search for repositories * @see https://developer.github.com/v3/search/#search-repositories - * @param {Object} [options] - additional parameters for the search + * @param {Search.Params} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ @@ -55,7 +64,7 @@ class Search extends Requestable { /** * Search for code * @see https://developer.github.com/v3/search/#search-code - * @param {Object} [options] - additional parameters for the search + * @param {Search.Params} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ @@ -66,7 +75,7 @@ class Search extends Requestable { /** * Search for issues * @see https://developer.github.com/v3/search/#search-issues - * @param {Object} [options] - additional parameters for the search + * @param {Search.Params} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ @@ -77,7 +86,7 @@ class Search extends Requestable { /** * Search for users * @see https://developer.github.com/v3/search/#search-users - * @param {Object} [options] - additional parameters for the search + * @param {Search.Params} [options] - additional parameters for the search * @param {Requestable.callback} [cb] - will receive the results of the search * @return {Promise} - the promise for the http request */ diff --git a/test/search.spec.js b/test/search.spec.js index bab9740d..37fa9146 100644 --- a/test/search.spec.js +++ b/test/search.spec.js @@ -33,7 +33,7 @@ describe('Search', function() { it('should search issues', function(done) { let search = github.search({ - q: 'windows label:bug language:python state:open', + q: 'windows pip label:bug language:python state:open ', sort: 'created', order: 'asc' }); From c35cdbf7713a3f64e95c97dc035d52fb4f3498d6 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 09:37:21 -0500 Subject: [PATCH 020/137] feature(organization): add api to list organization members Closes #265 --- lib/Organization.js | 13 +++++++++++++ test/organization.spec.js | 24 ++++++++++++++++++------ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/lib/Organization.js b/lib/Organization.js index c3d3dd70..44d3d85d 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -44,6 +44,19 @@ class Organization extends Requestable { return this._requestAllPages(`/orgs/${this.__name}/repos`, requestOptions, cb); } + + /** + * List the users who are members of the company + * @see https://developer.github.com/v3/orgs/members/#members-list + * @param {object} options + * @param {string} [options.filter=all] - can be either `2fa_disabled` or `all` + * @param {string} [options.role=all] - can be one of: `all`, `admin`, or `member` + * @param {Requestable.callback} [cb] - will receive the list of users + * @return {Promise} - the promise for the http request + */ + listMembers(options, cb) { + return this._request('GET', `/orgs/${this.__name}/members`, options, cb); + } } module.exports = Organization; diff --git a/test/organization.spec.js b/test/organization.spec.js index 760e8ac9..89992045 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -5,9 +5,9 @@ import testUser from './fixtures/user.json'; import {assertSuccessful, assertArray} from './helpers/callbacks'; import getTestRepoName from './helpers/getTestRepoName'; -// jscs:disable requireCamelCaseOrUpperCaseIdentifiers describe('Organization', function() { let github; + const ORG_NAME = 'github-tools'; before(function() { github = new Github({ @@ -22,12 +22,24 @@ describe('Organization', function() { let organization; before(function() { - organization = github.getOrganization('openaddresses'); + organization = github.getOrganization(ORG_NAME); }); it('should show user\'s organisation repos', function(done) { organization.getRepos(assertArray(done)); }); + + it('should list the users in the organization', function(done) { + organization.listMembers() + .then(function({data: members}) { + expect(members).to.be.an.array(); + + let hasClayReimann = members.reduce((found, member) => member.login === 'clayreimann' || found, false); + expect(hasClayReimann).to.be.true(); + + done(); + }).catch(done); + }); }); describe('creating/updating', function() { @@ -44,14 +56,14 @@ describe('Organization', function() { description: 'test create organization repo', homepage: 'https://github.com/', private: false, - has_issues: true, - has_wiki: true, - has_downloads: true + has_issues: true, // jscs:ignore + has_wiki: true, // jscs:ignore + has_downloads: true // jscs:ignore }; organization.createRepo(options, assertSuccessful(done, function(err, repo) { expect(repo.name).to.equal(testRepoName); - expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); + expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); // jscs:ignore done(); })); }); From 34a350d59e0a7d7b53c05109b2ad9b8e22ec7ac0 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 10:07:17 -0500 Subject: [PATCH 021/137] feature(organization): add isMember api Closes #289 --- lib/Organization.js | 10 ++++++++++ test/organization.spec.js | 11 ++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/Organization.js b/lib/Organization.js index 44d3d85d..4726d4b3 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -45,6 +45,16 @@ class Organization extends Requestable { return this._requestAllPages(`/orgs/${this.__name}/repos`, requestOptions, cb); } + /** + * Query if the user is a member or not + * @param {string} username - the user in question + * @param {Requestable.callback} [cb] - will receive true if the user is a member + * @return {Promise} - the promise for the http request + */ + isMember(username, cb) { + return this._request204or404(`/orgs/${this.__name}/members/${username}`, null, cb); + } + /** * List the users who are members of the company * @see https://developer.github.com/v3/orgs/members/#members-list diff --git a/test/organization.spec.js b/test/organization.spec.js index 89992045..dd0a32c7 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -8,6 +8,7 @@ import getTestRepoName from './helpers/getTestRepoName'; describe('Organization', function() { let github; const ORG_NAME = 'github-tools'; + const MEMBER_NAME = 'clayreimann'; before(function() { github = new Github({ @@ -34,12 +35,20 @@ describe('Organization', function() { .then(function({data: members}) { expect(members).to.be.an.array(); - let hasClayReimann = members.reduce((found, member) => member.login === 'clayreimann' || found, false); + let hasClayReimann = members.reduce((found, member) => member.login === MEMBER_NAME || found, false); expect(hasClayReimann).to.be.true(); done(); }).catch(done); }); + + it('should test for membership', function(done) { + organization.isMember(MEMBER_NAME) + .then(function(isMember) { + expect(isMember).to.be.true(); + done(); + }).catch(done); + }); }); describe('creating/updating', function() { From 0e3d37b9931bac3bdf79b9d467e7fd5bc9cee8fa Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 10:36:55 -0500 Subject: [PATCH 022/137] fix: ensure all functions return a promise Closes #326 --- lib/Issue.js | 18 +++++++++--------- lib/Organization.js | 2 +- lib/Repository.js | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/Issue.js b/lib/Issue.js index 6b8ba6a3..706c3b60 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -30,7 +30,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ createIssue(issueData, cb) { - this._request('POST', `/repos/${this.__repository}/issues`, issueData, cb); + return this._request('POST', `/repos/${this.__repository}/issues`, issueData, cb); } /** @@ -41,7 +41,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ listIssues(options, cb) { - this._requestAllPages(`/repos/${this.__repository}/issues`, options, cb); + return this._requestAllPages(`/repos/${this.__repository}/issues`, options, cb); } /** @@ -52,7 +52,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ listIssueComments(issue, cb) { - this._request('GET', `/repos/${this.__repository}/issues/${issue}/comments`, null, cb); // jscs:ignore + return this._request('GET', `/repos/${this.__repository}/issues/${issue}/comments`, null, cb); // jscs:ignore } /** @@ -63,7 +63,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ getIssueComment(id, cb) { - this._request('GET', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore + return this._request('GET', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore } /** @@ -75,7 +75,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ createIssueComment(issue, comment, cb) { - this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb); // jscs:ignore + return this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb); // jscs:ignore } /** @@ -87,7 +87,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ editIssueComment(id, comment, cb) { - this._request('PATCH', `/repos/${this.__repository}/issues/comments/${id}`, {body: comment}, cb); // jscs:ignore + return this._request('PATCH', `/repos/${this.__repository}/issues/comments/${id}`, {body: comment}, cb); // jscs:ignore } /** @@ -98,7 +98,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ deleteIssueComment(id, cb) { - this._request('DELETE', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore + return this._request('DELETE', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore } /** @@ -110,7 +110,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ editIssue(issue, issueData, cb) { - this._request('PATCH', `/repos/${this.__repository}/issues/${issue}`, issueData, cb); + return this._request('PATCH', `/repos/${this.__repository}/issues/${issue}`, issueData, cb); } /** @@ -121,7 +121,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ getIssue(issue, cb) { - this._request('GET', `/repos/${this.__repository}/issues/${issue}`, null, cb); + return this._request('GET', `/repos/${this.__repository}/issues/${issue}`, null, cb); } } diff --git a/lib/Organization.js b/lib/Organization.js index 4726d4b3..1e85dc97 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -30,7 +30,7 @@ class Organization extends Requestable { * @return {Promise} - the promise for the http request */ createRepo(options, cb) { - this._request('POST', `/orgs/${this.__name}/repos`, options, cb); + return this._request('POST', `/orgs/${this.__name}/repos`, options, cb); } /** diff --git a/lib/Repository.js b/lib/Repository.js index 96d26c71..5ab31a85 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -530,7 +530,7 @@ class Repository extends Requestable { return cb(null, this.__currentTree.sha); } - this.getRef(`heads/${branch}`, function(err, sha) { + return this.getRef(`heads/${branch}`, function(err, sha) { this.__currentTree.branch = branch; this.__currentTree.sha = sha; cb(err, sha); From 2a258658ee9a5a56c6252ab46df0fbc2815a69fc Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 10:53:03 -0500 Subject: [PATCH 023/137] refactor(repository): change getReleases to listReleases for consistency --- lib/Repository.js | 2 +- test/repository.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Repository.js b/lib/Repository.js index 5ab31a85..557c1252 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -635,7 +635,7 @@ class Repository extends Requestable { * @param {Requestable.callback} cb - will receive the release information * @return {Promise} - the promise for the http request */ - getReleases(cb) { + listReleases(cb) { return this._request('GET', `/repos/${this.__fullname}/releases`, null, cb); } diff --git a/test/repository.spec.js b/test/repository.spec.js index 7448f78e..34ecb371 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -518,7 +518,7 @@ describe('Repository', function() { }); it('should read all releases', function(done) { - remoteRepo.getReleases(assertSuccessful(done, function(err, releases) { + remoteRepo.listReleases(assertSuccessful(done, function(err, releases) { expect(releases).to.be.an.array(); done(); })); From 66d504f05661eedb8ad507dbd931d8c2d26b4b4d Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 10:46:32 -0500 Subject: [PATCH 024/137] chore: update Readme, package scripts, and Changelog --- CHANGELOG.md | 19 +++++++++++++++++++ README.md | 29 ++++++++++++++++++----------- package.json | 6 ++---- release.sh | 26 ++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 15 deletions(-) create mode 100755 release.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index c6620644..7febae75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,28 @@ # Change Log +## master ### Features ### Fixes +## 1.2.0 - 2015/05/11 +### Features +* Search API now returns all pages of results +* Added `Repository.listReleases` + +Added functions for querying organization membership +* `Organization.listMembers` +* `Organization.isMember` + +Added functions for issue comments +* `Issue.listComments` +* `Issue.getComment` +* `Issue.editComment` +* `Issue.deleteComment` + +### Fixes +* all functions now return a Promise + ## 1.1.0 - 2015/05/03 ### Features Added methods for commenting on Gists: diff --git a/README.md b/README.md index 44765f02..98716949 100644 --- a/README.md +++ b/README.md @@ -9,22 +9,29 @@ Github.js provides a minimal higher-level wrapper around Github's API. It was concieved in the context of [Prose][prose], a content editor for GitHub. -## Docs -Read the [docs][docs] +## [Read the docs][docs] ## Installation -Github.js is available from `npm` or (soon) [cdnjs][cdnjs]. +Github.js is available from `npm` or [npmcdn][npmcdn]. -``` +```shell npm install github-api ``` +```html + + + + + +``` + ## Compatibility Github.js is tested on Node: -* 0.10 -* 0.12 -* 4.x * 5.x +* 4.x +* 0.12 +* 0.10 ## GitHub Tools @@ -101,11 +108,11 @@ yahoo.getRepos(function(err, repos) { }) ``` -[cdnjs]: https://cdnjs.com/ [codecov]: https://codecov.io/github/michael/github?branch=master -[travis-ci]: https://travis-ci.org/michael/github +[docs]: http://michael.github.io/github/ [gitter]: https://gitter.im/michael/github -[npm-package]: https://www.npmjs.com/package/github-api +[npm-package]: https://www.npmjs.com/package/github-api/ +[npmcdn]: https://npmcdn.com/github-api/ [prose]: http://prose.io +[travis-ci]: https://travis-ci.org/michael/github [xhr-link]: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx -[docs]: http://michael.github.io/github/ diff --git a/package.json b/package.json index 8cef2c2c..72d330cb 100644 --- a/package.json +++ b/package.json @@ -16,11 +16,9 @@ "build": "gulp build", "test": "mocha --opts ./mocha.opts test/*.spec.js", "test-verbose": "DEBUG=github* npm test", - "test-browser": "", "lint": "gulp lint", - "generate-docs": "node_modules/.bin/jsdoc -c .jsdoc.json --verbose", - "codecov": "node_modules/.bin/codecov", - "show-coverage-html": "open coverage/lcov-report/index.html" + "make-docs": "node_modules/.bin/jsdoc -c .jsdoc.json --verbose", + "release": "./release.sh" }, "babel": { "presets": [ diff --git a/release.sh b/release.sh new file mode 100755 index 00000000..b85b1796 --- /dev/null +++ b/release.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# This is the automated release script + +# bump the version +echo "npm version $1" +npm version $1 +git push +git push --tags + +# start from a clean state +rm -rf docs/ out/ +mkdir out + +# build the docs +npm run make-docs +VERSION=`ls docs/github-api` + +# switch to gh-pages and add the docs +mv docs/github-api/* out/ +rm -rf docs/ + +git checkout gh-pages +mv out/* docs/ +echo $VERSION >> _data/versions.csv +git co -am "adding docs for v$VERSION" +git push From a6231e0b65e66a0705cc05519d06145bd4c65a73 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 May 2016 16:32:52 -0500 Subject: [PATCH 025/137] 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 72d330cb..f7a62198 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "1.1.0", + "version": "1.2.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 02b71b10e11f4e81db181f027cbe04d551455255 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 12 May 2016 07:20:44 -0500 Subject: [PATCH 026/137] fix(repository): replace references of `postTree` with `createTree` Closes #282 --- CHANGELOG.md | 4 ++++ lib/Repository.js | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7febae75..1fec4bcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ ### Fixes +## 1.2.1 +### Fixes +* `Repository`: Replace invalid references to `postTree` with `createTree` + ## 1.2.0 - 2015/05/11 ### Features * Search API now returns all pages of results diff --git a/lib/Repository.js b/lib/Repository.js index 557c1252..8b302558 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -254,7 +254,7 @@ class Repository extends Requestable { * @param {string} blobSHA - the SHA for the blob to put at `path` * @param {Requestable.callback} cb - will receive the new tree that is created * @return {Promise} - the promise for the http request - * @deprecated use {@link Repository#postTree} instead + * @deprecated use {@link Repository#createTree} instead */ updateTree(baseTreeSHA, path, blobSHA, cb) { let newTree = { @@ -516,7 +516,7 @@ class Repository extends Requestable { } }); - this.postTree(tree, function(err, rootTree) { + this.createTree(tree, function(err, rootTree) { this.commit(latestCommit, rootTree, 'Deleted ' + path, function(err, commit) { this.updateHead(branch, commit, cb); }); From f866689222713bfe7ec37036da6e9add3fb30814 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 12 May 2016 07:22:45 -0500 Subject: [PATCH 027/137] 1.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f7a62198..f74481c1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "1.2.0", + "version": "1.2.1", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 3d761f517e9498b3b275832a1426a16312ad8963 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 12 May 2016 07:29:56 -0500 Subject: [PATCH 028/137] chore: update the release script to so docs generation doesn't fail --- release.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/release.sh b/release.sh index b85b1796..0f57621e 100755 --- a/release.sh +++ b/release.sh @@ -1,6 +1,9 @@ #!/bin/bash # This is the automated release script +# make sure all our dependencies are installed so we can publish docs +npm install + # bump the version echo "npm version $1" npm version $1 From 4268802ebf9ee9597951ed614cc76bf42c75e601 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 12 May 2016 16:27:49 -0500 Subject: [PATCH 029/137] feature(Issue): add Milestone API Closes #68 Closes #268 --- CHANGELOG.md | 5 +++ lib/Issue.js | 56 +++++++++++++++++++++++++ lib/Requestable.js | 19 +++++---- test/issue.spec.js | 100 ++++++++++++++++++++++++++++++++++++--------- 4 files changed, 153 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fec4bcf..5650c231 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## master ### Features +Added Milestone API +* `Issue.listMilestones` +* `Issue.getMilestone` +* `Issue.editMilestone` +* `Issue.deleteMilestone` ### Fixes diff --git a/lib/Issue.js b/lib/Issue.js index 706c3b60..d1e35c89 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -123,6 +123,62 @@ class Issue extends Requestable { getIssue(issue, cb) { return this._request('GET', `/repos/${this.__repository}/issues/${issue}`, null, cb); } + + /** + * List the milestones for the repository + * @see https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository + * @param {Object} options - filtering options + * @param {Requestable.callback} [cb] - will receive the array of milestones + * @return {Promise} - the promise for the http request + */ + listMilestones(options, cb) { + return this._request('GET', `/repos/${this.__repository}/milestones`, options, cb); + } + + /** + * Get a milestone + * @see https://developer.github.com/v3/issues/milestones/#get-a-single-milestone + * @param {string} milestone - the id of the milestone to fetch + * @param {Requestable.callback} [cb] - will receive the array of milestones + * @return {Promise} - the promise for the http request + */ + getMilestone(milestone, cb) { + return this._request('GET', `/repos/${this.__repository}/milestones/${milestone}`, null, cb); + } + + /** + * Create a new milestone + * @see https://developer.github.com/v3/issues/milestones/#create-a-milestone + * @param {Object} milestoneData - the milestone definition + * @param {Requestable.callback} [cb] - will receive the array of milestones + * @return {Promise} - the promise for the http request + */ + createMilestone(milestoneData, cb) { + return this._request('POST', `/repos/${this.__repository}/milestones`, milestoneData, cb); + } + + /** + * Edit a milestone + * @see https://developer.github.com/v3/issues/milestones/#update-a-milestone + * @param {string} milestone - the id of the milestone to edit + * @param {Object} milestoneData - the updates to make to the milestone + * @param {Requestable.callback} [cb] - will receive the array of milestones + * @return {Promise} - the promise for the http request + */ + editMilestone(milestone, milestoneData, cb) { + return this._request('PATCH', `/repos/${this.__repository}/milestones/${milestone}`, milestoneData, cb); + } + + /** + * Delete a milestone (this is distinct from closing a milestone) + * @see https://developer.github.com/v3/issues/milestones/#delete-a-milestone + * @param {string} milestone - the id of the milestone to delete + * @param {Requestable.callback} [cb] - will receive the array of milestones + * @return {Promise} - the promise for the http request + */ + deleteMilestone(milestone, cb) { + return this._request('DELETE', `/repos/${this.__repository}/milestones/${milestone}`, null, cb); + } } module.exports = Issue; diff --git a/lib/Requestable.js b/lib/Requestable.js index e447a7f7..b42dbe66 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -228,13 +228,14 @@ module.exports = Requestable; // ////////////////////////// // // Private helper functions // // ////////////////////////// // -function buildError(path, response) { - return { - path: path, - request: response.config, - response: response, - status: response.status - }; +class ResponseError extends Error { + constructor(path, response) { + super(`error making request ${response.config.method} ${response.config.url}`); + this.path = path; + this.request = response.config; + this.response = response; + this.status = response.status; + } } const METHODS_WITH_NO_BODY = ['GET', 'HEAD', 'DELETE']; @@ -256,10 +257,12 @@ function getNextPage(linksHeader = '') { function callbackErrorOrThrow(cb, path) { return function handler(response) { log(`error making request ${response.config.method} ${response.config.url} ${JSON.stringify(response.data)}`); - let error = buildError(path, response); + let error = new ResponseError(path, response); if (cb) { + log('going to error callback'); cb(error); } else { + log('throwing error'); throw error; } }; diff --git a/test/issue.spec.js b/test/issue.spec.js index bc0b224e..bc88a623 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -7,8 +7,6 @@ import {assertSuccessful} from './helpers/callbacks'; describe('Issue', function() { let github; let remoteIssues; - let remoteIssueId; - let remoteIssueCommentId; before(function() { github = new Github({ @@ -21,6 +19,9 @@ describe('Issue', function() { }); describe('reading', function() { + let remoteIssueId; + let milestoneId; + it('should list issues', function(done) { remoteIssues.listIssues({}, assertSuccessful(done, function(err, issues) { expect(issues).to.be.an.array(); @@ -37,9 +38,31 @@ describe('Issue', function() { done(); })); }); + + it('should get all milestones', function(done) { + remoteIssues.listMilestones() + .then(({data: milestones}) => { + expect(milestones).to.be.an.array(); + milestoneId = milestones[0].number; + + done(); + }).catch(done); + }); + + it('should get a single milestone', function(done) { + remoteIssues.getMilestone(milestoneId) + .then(({data: milestone}) => { + expect(milestone).to.have.own('title', 'Default Milestone'); + done(); + }).catch(done); + }); }); - describe('creating/modifiying/editing/deleting', function() { + describe('creating/editing/deleting', function() { + let createdIssueId; + let issueCommentId; + let createdMilestoneId; + // 200ms between tests so that Github has a chance to settle beforeEach(function(done) { setTimeout(done, 200); @@ -52,6 +75,7 @@ describe('Issue', function() { }; remoteIssues.createIssue(newIssue, assertSuccessful(done, function(err, issue) { + createdIssueId = issue.number; expect(issue).to.have.own('url'); expect(issue).to.have.own('title', newIssue.title); expect(issue).to.have.own('body', newIssue.body); @@ -60,8 +84,21 @@ describe('Issue', function() { })); }); + it('should edit issue', function(done) { + const newProps = { + title: 'Edited title', + state: 'closed' + }; + + remoteIssues.editIssue(createdIssueId, newProps, assertSuccessful(done, function(err, issue) { + expect(issue).to.have.own('title', newProps.title); + + done(); + })); + }); + it('should post issue comment', function(done) { - remoteIssues.createIssueComment(remoteIssueId, 'Comment test', assertSuccessful(done, function(err, issue) { + remoteIssues.createIssueComment(createdIssueId, 'Comment test', assertSuccessful(done, function(err, issue) { expect(issue).to.have.own('body', 'Comment test'); done(); @@ -69,47 +106,72 @@ describe('Issue', function() { }); it('should list issue comments', function(done) { - remoteIssues.listIssueComments(remoteIssueId, assertSuccessful(done, function(err, comments) { + remoteIssues.listIssueComments(createdIssueId, assertSuccessful(done, function(err, comments) { expect(comments).to.be.an.array(); expect(comments[0]).to.have.own('body', 'Comment test'); - remoteIssueCommentId = comments[0].id + issueCommentId = comments[0].id; done(); })); }); it('should get a single issue comment', function(done) { - remoteIssues.getIssueComment(remoteIssueCommentId, assertSuccessful(done, function(err, comment) { + remoteIssues.getIssueComment(issueCommentId, assertSuccessful(done, function(err, comment) { expect(comment).to.have.own('body', 'Comment test'); done(); })); }); it('should edit issue comment', function(done) { - remoteIssues.editIssueComment(remoteIssueCommentId, 'Comment test edited', assertSuccessful(done, function(err, comment) { - expect(comment).to.have.own('body', 'Comment test edited'); + remoteIssues.editIssueComment(issueCommentId, 'Comment test edited', + assertSuccessful(done, function(err, comment) { + expect(comment).to.have.own('body', 'Comment test edited'); - done(); - })); + done(); + })); }); it('should delete issue comment', function(done) { - remoteIssues.deleteIssueComment(remoteIssueCommentId, assertSuccessful(done, function(err, response) { + remoteIssues.deleteIssueComment(issueCommentId, assertSuccessful(done, function(err, response) { expect(response).to.be.true; done(); })); }); - it('should edit issues title', function(done) { - const newProps = { - title: 'Edited title' + it('should create a milestone', function(done) { + let milestone = { + title: 'v42', + description: 'The ultimate version' }; - remoteIssues.editIssue(remoteIssueId, newProps, assertSuccessful(done, function(err, issue) { - expect(issue).to.have.own('title', newProps.title); + remoteIssues.createMilestone(milestone) + .then(({data: createdMilestone}) => { + expect(createdMilestone).to.have.own('number'); + expect(createdMilestone).to.have.own('title', milestone.title); - done(); - })); + createdMilestoneId = createdMilestone.number; + done(); + }).catch(done); + }); + it('should update a milestone', function(done) { + let milestone = { + description: 'Version 6 * 7' + }; + + remoteIssues.editMilestone(createdMilestoneId, milestone) + .then(({data: createdMilestone}) => { + expect(createdMilestone).to.have.own('number', createdMilestoneId); + expect(createdMilestone).to.have.own('describe', milestone.description); + + done(); + }).catch(done); + }); + it('should delete a milestone', function(done) { + remoteIssues.deleteMilestone(createdMilestoneId) + .then(({status}) => { + expect(status).to.equal(204); + done(); + }).catch(done); }); }); }); From b4995e083a231ed0ccb0837c6234f6ff53cabbee Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 12 May 2016 16:48:17 -0500 Subject: [PATCH 030/137] chore: add debugging code to figure out why collaborators randomly breaks --- test/issue.spec.js | 2 +- test/repository.spec.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/test/issue.spec.js b/test/issue.spec.js index bc88a623..feefdaab 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -161,7 +161,7 @@ describe('Issue', function() { remoteIssues.editMilestone(createdMilestoneId, milestone) .then(({data: createdMilestone}) => { expect(createdMilestone).to.have.own('number', createdMilestoneId); - expect(createdMilestone).to.have.own('describe', milestone.description); + expect(createdMilestone).to.have.own('description', milestone.description); done(); }).catch(done); diff --git a/test/repository.spec.js b/test/repository.spec.js index 34ecb371..93c394a4 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -254,6 +254,9 @@ describe('Repository', function() { it('should show repo collaborators', function(done) { remoteRepo.getCollaborators(assertSuccessful(done, function(err, collaborators) { + if (!(collaborators instanceof Array)) { + console.log(collaborator); // eslint-disable-line + } expect(collaborators).to.be.an.array(); expect(collaborators).to.have.length(1); From 8677173b89ed23cbbc7dc2518fc10ded3488524b Mon Sep 17 00:00:00 2001 From: Kenshi Kamata Date: Wed, 18 May 2016 00:27:47 +0900 Subject: [PATCH 031/137] feature(markdown): add markdown api Closes #325 --- lib/GitHub.js | 9 +++++++++ lib/Markdown.js | 39 ++++++++++++++++++++++++++++++++++++++ test/markdown.spec.js | 44 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 lib/Markdown.js create mode 100644 test/markdown.spec.js diff --git a/lib/GitHub.js b/lib/GitHub.js index 3a895f9a..36829b0c 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -12,6 +12,7 @@ import Search from './Search'; import RateLimit from './RateLimit'; import Repository from './Repository'; import Organization from './Organization'; +import Markdown from './Markdown'; /** * GitHub encapsulates the functionality to create various API wrapper objects. @@ -93,6 +94,14 @@ class GitHub { return new RateLimit(this.__auth, this.__apiBase); } + /** + * Create a new Markdown wrapper + * @return {Markdown} + */ + getMarkdown() { + return new Markdown(this.__auth, this.__apiBase); + } + _getFullName(user, repo) { let fullname = user; diff --git a/lib/Markdown.js b/lib/Markdown.js new file mode 100644 index 00000000..e2778169 --- /dev/null +++ b/lib/Markdown.js @@ -0,0 +1,39 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; + +/** + * RateLimit allows users to query their rate-limit status + */ +class Markdown extends Requestable { + /** + * construct a RateLimit + * @param {Requestable.auth} auth - the credentials to authenticate to GitHub + * @param {string} [apiBase] - the base Github API URL + * @return {Promise} - the promise for the http request + */ + constructor(auth, apiBase) { + super(auth, apiBase); + } + + /** + * Render html from Markdown text. + * @see https://developer.github.com/v3/markdown/#render-an-arbitrary-markdown-document + * @param {Object} options + * @param {string} [options.text] - the markdown text to convert + * @param {string} [options.mode=markdown] - can be either `markdown` or `gfm` + * @param {string} [options.context] - repository name if mode is gfm + * @param {Requestable.callback} [cb] - will receive the converted html + * @return {Promise} - the promise for the http request + */ + render(options, cb) { + return this._request('POST', '/markdown', options, cb); + } +} + +module.exports = Markdown; diff --git a/test/markdown.spec.js b/test/markdown.spec.js new file mode 100644 index 00000000..3e944650 --- /dev/null +++ b/test/markdown.spec.js @@ -0,0 +1,44 @@ +import expect from 'must'; + +import Github from '../lib/GitHub'; +import testUser from './fixtures/user.json'; + +describe('Markdown', function() { + let github; + let markdown; + + before(function() { + github = new Github({ + username: testUser.USERNAME, + password: testUser.PASSWORD, + auth: 'basic' + }); + + markdown = github.getMarkdown(); + }); + + it('should convert markdown to html as plain Markdown', function(done) { + const options = { + text: 'Hello world github/linguist#1 **cool**, and #1!' + }; + + markdown.render(options) + .then(function({data: html}) { + expect(html).to.be('

Hello world github/linguist#1 cool, and #1!

\n'); + done(); + }).catch(done); + }); + + it('should convert markdown to html as GFM', function(done) { + const options = { + text: 'Hello world github/linguist#1 **cool**, and #1!', + mode: 'gfm', + context: 'github/gollum' + }; + markdown.render(options) + .then(function({data: html}) { + expect(html).to.be('

Hello world github/linguist#1 cool, and #1!

'); // jscs:ignore + done(); + }).catch(done); + }); +}); From 68952efc5b59618b5d660f34f834aa2a2ff533df Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 17 May 2016 10:38:02 -0500 Subject: [PATCH 032/137] chore: fix loggining to determine why collaborators test fails sometimes --- test/repository.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/repository.spec.js b/test/repository.spec.js index 93c394a4..14b1a390 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -255,7 +255,7 @@ describe('Repository', function() { it('should show repo collaborators', function(done) { remoteRepo.getCollaborators(assertSuccessful(done, function(err, collaborators) { if (!(collaborators instanceof Array)) { - console.log(collaborator); // eslint-disable-line + console.log(collaborators); // eslint-disable-line } expect(collaborators).to.be.an.array(); expect(collaborators).to.have.length(1); From d257adf87a6c672b6ee7063d0e4f87ebd03ae548 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 17 May 2016 10:44:06 -0500 Subject: [PATCH 033/137] 1.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f74481c1..50bc39db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "1.2.1", + "version": "1.3.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 1c051ba5347d6aec43261d41c2b6663fd5d65773 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Tue, 17 May 2016 10:45:35 -0500 Subject: [PATCH 034/137] chore: update release script to include newly generated docs update test debug logging again --- release.sh | 3 ++- test/repository.spec.js | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/release.sh b/release.sh index 0f57621e..994df005 100755 --- a/release.sh +++ b/release.sh @@ -25,5 +25,6 @@ rm -rf docs/ git checkout gh-pages mv out/* docs/ echo $VERSION >> _data/versions.csv -git co -am "adding docs for v$VERSION" +git add . +git co -m "adding docs for v$VERSION" git push diff --git a/test/repository.spec.js b/test/repository.spec.js index 14b1a390..db19fb8a 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -140,6 +140,9 @@ describe('Repository', function() { it('should show repo contributors', function(done) { remoteRepo.getContributors(assertSuccessful(done, function(err, contributors) { + if (!(contributors instanceof Array)) { + console.log(contributors); // eslint-disable-line + } expect(contributors).to.be.an.array(); expect(contributors.length).to.be.above(1); From bfa869079e503bccedb3705ad73b6a2bb6ae3503 Mon Sep 17 00:00:00 2001 From: Randal Pinto Date: Thu, 19 May 2016 15:56:31 +0100 Subject: [PATCH 035/137] fix(user): unbreak filtering repos by visibility and affiliation Filtering repositories by visibility and/or affiliation is mutually exclusive to searching by type. (https://developer.github.com/v3/repos/#list-your-repositories) --- lib/Requestable.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Requestable.js b/lib/Requestable.js index b42dbe66..4b33bed6 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -91,7 +91,9 @@ class Requestable { * @return - the options to pass to the request */ _getOptionsWithDefaults(requestOptions = {}) { - requestOptions.type = requestOptions.type || 'all'; + if (!(requestOptions.visibility || requestOptions.affiliation)) { + requestOptions.type = requestOptions.type || 'all'; + } requestOptions.sort = requestOptions.sort || 'updated'; requestOptions.per_page = requestOptions.per_page || '100'; // jscs:ignore From c50436ad047874956dd64ac00d28f8ddfa1288f4 Mon Sep 17 00:00:00 2001 From: Minke Zhang Date: Thu, 19 May 2016 07:59:02 -0700 Subject: [PATCH 036/137] fix(repository): unbreak repo.move BREAKING CHANGE: the argument list to repository#move has changed --- lib/Repository.js | 72 ++++++++++++++++++++--------------------- test/repository.spec.js | 15 +++++++++ 2 files changed, 50 insertions(+), 37 deletions(-) diff --git a/lib/Repository.js b/lib/Repository.js index 8b302558..f74b620e 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -286,7 +286,7 @@ class Repository extends Requestable { * Add a commit to the repository * @see https://developer.github.com/v3/git/commits/#create-a-commit * @param {string} parent - the SHA of the parent commit - * @param {Object} tree - the tree that describes this commit + * @param {string} tree - the SHA of the tree for this commit * @param {string} message - the commit message * @param {Function} cb - will receive the commit that is created * @return {Promise} - the promise for the http request @@ -300,7 +300,7 @@ class Repository extends Requestable { return this._request('POST', `/repos/${this.__fullname}/git/commits`, data, cb) .then((response) => { - this.__currentTree.sha = response.sha; // Update latest commit + this.__currentTree.sha = response.data.sha; // Update latest commit return response; }); } @@ -310,11 +310,12 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/git/refs/#update-a-reference * @param {string} ref - the ref to update * @param {string} commitSHA - the SHA to point the reference to + * @param {boolean} force - indicates whether to force or ensure a fast-forward update * @param {Function} cb - will receive the updated ref back * @return {Promise} - the promise for the http request */ - updateHead(ref, commitSHA, cb) { - return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, {sha: commitSHA}, cb); + updateHead(ref, commitSHA, force, cb) { + return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, {sha: commitSHA, force: force}, cb); } /** @@ -500,41 +501,38 @@ class Repository extends Requestable { }); } - // Move a file to a new location - // ------- - move(branch, path, newPath, cb) { - return this._updateTree(branch, function(err, latestCommit) { - this.getTree(latestCommit + '?recursive=true', function(err, tree) { - // Update Tree - tree.forEach(function(ref) { - if (ref.path === path) { - ref.path = newPath; - } - - if (ref.type === 'tree') { - delete ref.sha; - } - }); - - this.createTree(tree, function(err, rootTree) { - this.commit(latestCommit, rootTree, 'Deleted ' + path, function(err, commit) { - this.updateHead(branch, commit, cb); + /** + * Change all references in a repo from old_path to new_path + * @param {string} branch - the branch to carry out the reference change, or the default branch if not specified + * @param {string} old_path - original path + * @param {string} new_path - new reference path + * @param {Function} cb - will receive the commit in which the move occurred + * @return {Promise} - the promise for the http request + */ + move(branch, old_path, new_path, cb) { + return this.getRef(`heads/${branch}`) + .then((response) => { + return this.getTree(`${response.data.object.sha}?recursive=true`) + .then((response) => { + var _resp = response; + response.data.tree.forEach((ref) => { + if (ref.path === old_path) { + ref.path = new_path; + } + if (ref.type === 'tree') { + delete ref.sha; + } + }); + return this.createTree(response.data.tree).then( + (response) => { + return this.commit(_resp.data.sha, response.data.sha, `Renamed '${old_path}' to '${new_path}'`) + .then((response) => { + return this.updateHead(`heads/${branch}`, response.data.sha, true, cb); + }); + } + ); }); - }); }); - }); - } - - _updateTree(branch, cb) { - if (branch === this.__currentTree.branch && this.__currentTree.sha) { - return cb(null, this.__currentTree.sha); - } - - return this.getRef(`heads/${branch}`, function(err, sha) { - this.__currentTree.branch = branch; - this.__currentTree.sha = sha; - cb(err, sha); - }); } /** diff --git a/test/repository.spec.js b/test/repository.spec.js index db19fb8a..dbf67286 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -287,6 +287,21 @@ describe('Repository', function() { })); }); + it('should rename files', function(done) { + remoteRepo.writeFile('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { + remoteRepo.move('master', fileName, 'new_name', assertSuccessful(done, function() { + remoteRepo.getContents('master', fileName, 'raw', assertFailure(done, function(err) { + expect(err.status).to.be(404); + remoteRepo.getContents('master', 'new_name', 'raw', assertSuccessful(done, function(err, fileText) { + expect(fileText).to.be(initialText); + + done(); + })); + })); + })); + })); + }); + it('should create a new branch', function(done) { remoteRepo.createBranch('master', 'dev', assertSuccessful(done, function(err, branch) { expect(branch).to.have.property('ref', 'refs/heads/dev'); From 2d1c29d42154a666a8541b31bdf2ed28a8570d01 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 19 May 2016 12:29:29 -0500 Subject: [PATCH 037/137] chore: actually the linter during build; fix accumulated code style violations --- .eslintrc | 26 ---------------- .eslintrc.yaml | 36 ++++++++++++++++++++++ .jscsrc | 16 ---------- gulpfile.babel.js | 21 ++++--------- lib/GitHub.js | 10 ++++++- lib/Issue.js | 10 +++---- lib/Markdown.js | 2 +- lib/Organization.js | 4 +-- lib/Repository.js | 63 ++++++++++++++++++++++++++------------- lib/Requestable.js | 12 ++++++-- lib/Search.js | 8 +++-- lib/User.js | 7 +++-- package.json | 1 + test/.eslintrc | 7 ----- test/.eslintrc.yaml | 6 ++++ test/gist.spec.js | 4 +-- test/issue.spec.js | 2 +- test/markdown.spec.js | 2 +- test/organization.spec.js | 8 ++--- test/repository.spec.js | 6 ++-- test/search.spec.js | 16 ++++++---- test/user.spec.js | 2 +- 22 files changed, 150 insertions(+), 119 deletions(-) delete mode 100644 .eslintrc create mode 100644 .eslintrc.yaml delete mode 100644 .jscsrc delete mode 100644 test/.eslintrc create mode 100644 test/.eslintrc.yaml diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 5a061f61..00000000 --- a/.eslintrc +++ /dev/null @@ -1,26 +0,0 @@ -{ - "extends": "eslint:recommended", - - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module" - }, - - "rules": { - "no-bitwise": 1, - "eqeqeq": 2, - "guard-for-in": 2, - "no-extend-native": 2 - }, - - "env": { - "browser": true, - "node": true - }, - - "globals": { - "require": false, - "define": false, - "escape": false - } -} diff --git a/.eslintrc.yaml b/.eslintrc.yaml new file mode 100644 index 00000000..2718e64e --- /dev/null +++ b/.eslintrc.yaml @@ -0,0 +1,36 @@ +--- + extends: + - eslint:recommended + - google + parserOptions: + ecmaVersion: 6 + sourceType: module + rules: + arrow-parens: [error, always] + eqeqeq: error + guard-for-in: error + indent: [error, 3, {SwitchCase: 1}] + max-len: [error, {code: 120, ignoreTrailingComments: true}] + no-bitwise: warn + no-extend-native: error + no-useless-constructor: off + no-var: error + padded-blocks: off + quotes: [error, single, {avoidEscape: true}] + require-jsdoc: + - error + - require: + FunctionDeclaration: false + ClassDeclaration: true + MethodDefinition: true + spaced-comment: error + valid-jsdoc: [error, {requireParamDescription: true}] + + env: + es6: true + node: true + browser: true + # globals: + # require: false + # define: false + # escape: false diff --git a/.jscsrc b/.jscsrc deleted file mode 100644 index 0a7963d2..00000000 --- a/.jscsrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "preset": "google", - - "disallowVar": true, - "jsDoc": { - "checkParamExistence": true, - "checkParamNames": true, - "checkTypes": true, - "requireParamTypes": true, - "requireHyphenBeforeDescription": true, - }, - "maximumLineLength": 120, - "requireSpaceAfterLineComment": true, - "safeContextKeyword": ["that"], - "validateIndentation": 3, -} diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 9055f7b3..c3d669f5 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -1,35 +1,26 @@ import gulp from 'gulp'; -import jscs from 'gulp-jscs'; import eslint from 'gulp-eslint'; -import stylish from 'gulp-jscs-stylish'; - import babel from 'gulp-babel'; import rename from 'gulp-rename'; import browserify from 'browserify'; import buffer from 'vinyl-buffer'; import del from 'del'; -import path from 'path'; -import {Promise} from 'es6-promise'; import source from 'vinyl-source-stream'; import sourcemaps from 'gulp-sourcemaps'; import uglify from 'gulp-uglify'; const ALL_SOURCES = [ - path.join(__dirname, '/*.js'), - path.join(__dirname, '/src/*.js'), - path.join(__dirname, '/test/*.js') + '*.js', + 'lib/*.js', + 'test/*.js' ]; gulp.task('lint', function() { - const opts = { - base: './' - }; - return gulp.src(ALL_SOURCES, opts) + return gulp.src(ALL_SOURCES) .pipe(eslint()) - .pipe(jscs()) - .pipe(stylish.combineWithHintResults()) - .pipe(stylish()) + .pipe(eslint.format()) + .pipe(eslint.failAfterError()) ; }); diff --git a/lib/GitHub.js b/lib/GitHub.js index 36829b0c..7bc0b63f 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -4,6 +4,7 @@ * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. * Github.js is freely distributable. */ +/* eslint valid-jsdoc: ["error", {"requireReturnDescription": false}] */ import Gist from './Gist'; import User from './User'; @@ -51,6 +52,7 @@ class GitHub { /** * Create a new Organization wrapper * @param {string} organization - the name of the organization + * @param {string} foo - this * @return {Organization} */ getOrganization(organization) { @@ -99,9 +101,15 @@ class GitHub { * @return {Markdown} */ getMarkdown() { - return new Markdown(this.__auth, this.__apiBase); + return new Markdown(this.__auth, this.__apiBase); } + /** + * Computes the full repository name + * @param {string} user - the username (or the full name) + * @param {string} repo - the repository name, must not be passed if `user` is the full name + * @return {string} the repository's full name + */ _getFullName(user, repo) { let fullname = user; diff --git a/lib/Issue.js b/lib/Issue.js index d1e35c89..2b2fc9dc 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -52,7 +52,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ listIssueComments(issue, cb) { - return this._request('GET', `/repos/${this.__repository}/issues/${issue}/comments`, null, cb); // jscs:ignore + return this._request('GET', `/repos/${this.__repository}/issues/${issue}/comments`, null, cb); } /** @@ -63,7 +63,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ getIssueComment(id, cb) { - return this._request('GET', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore + return this._request('GET', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); } /** @@ -75,7 +75,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ createIssueComment(issue, comment, cb) { - return this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb); // jscs:ignore + return this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb); } /** @@ -87,7 +87,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ editIssueComment(id, comment, cb) { - return this._request('PATCH', `/repos/${this.__repository}/issues/comments/${id}`, {body: comment}, cb); // jscs:ignore + return this._request('PATCH', `/repos/${this.__repository}/issues/comments/${id}`, {body: comment}, cb); } /** @@ -98,7 +98,7 @@ class Issue extends Requestable { * @return {Promise} - the promise for the http request */ deleteIssueComment(id, cb) { - return this._request('DELETE', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); // jscs:ignore + return this._request('DELETE', `/repos/${this.__repository}/issues/comments/${id}`, null, cb); } /** diff --git a/lib/Markdown.js b/lib/Markdown.js index e2778169..cb84851d 100644 --- a/lib/Markdown.js +++ b/lib/Markdown.js @@ -24,7 +24,7 @@ class Markdown extends Requestable { /** * Render html from Markdown text. * @see https://developer.github.com/v3/markdown/#render-an-arbitrary-markdown-document - * @param {Object} options + * @param {Object} options - conversion options * @param {string} [options.text] - the markdown text to convert * @param {string} [options.mode=markdown] - can be either `markdown` or `gfm` * @param {string} [options.context] - repository name if mode is gfm diff --git a/lib/Organization.js b/lib/Organization.js index 1e85dc97..ac264186 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -19,7 +19,7 @@ class Organization extends Requestable { */ constructor(organization, auth, apiBase) { super(auth, apiBase); - this.__name = organization; + this.__name = organization; } /** @@ -58,7 +58,7 @@ class Organization extends Requestable { /** * List the users who are members of the company * @see https://developer.github.com/v3/orgs/members/#members-list - * @param {object} options + * @param {object} options - filtering options * @param {string} [options.filter=all] - can be either `2fa_disabled` or `all` * @param {string} [options.role=all] - can be one of: `all`, `admin`, or `member` * @param {Requestable.callback} [cb] - will receive the list of users diff --git a/lib/Repository.js b/lib/Repository.js index f74b620e..b5086448 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -8,7 +8,9 @@ import Requestable from './Requestable'; import Utf8 from 'utf8'; -import {Base64} from 'js-base64'; +import { + Base64 +} from 'js-base64'; import debug from 'debug'; const log = debug('github:repository'); @@ -154,7 +156,7 @@ class Repository extends Requestable { /** * List the commits on a repository, optionally filtering by path, author or time range * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository - * @param {Object} [options] + * @param {Object} [options] - the filtering options for commits * @param {string} [options.sha] - the SHA or branch to start from * @param {string} [options.path] - the path to search on * @param {string} [options.author] - the commit author @@ -221,6 +223,11 @@ class Repository extends Requestable { return this._request('POST', `/repos/${this.__fullname}/git/blobs`, postBody, cb); } + /** + * Get the object that represents the provided content + * @param {string|Buffer|Blob} content - the content to send to the server + * @return {Object} the representation of `content` for the GitHub API + */ _getContentObject(content) { if (typeof content === 'string') { log('contet is a string'); @@ -228,19 +235,22 @@ class Repository extends Requestable { content: Utf8.encode(content), encoding: 'utf-8' }; + } else if (typeof Buffer !== 'undefined' && content instanceof Buffer) { log('We appear to be in Node'); return { content: content.toString('base64'), encoding: 'base64' }; + } else if (typeof Blob !== 'undefined' && content instanceof Blob) { log('We appear to be in the browser'); return { content: Base64.encode(content), encoding: 'base64' }; - } else { + + } else { // eslint-disable-line log(`Not sure what this content is: ${typeof content}, ${JSON.stringify(content)}`); throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)'); } @@ -258,8 +268,8 @@ class Repository extends Requestable { */ updateTree(baseTreeSHA, path, blobSHA, cb) { let newTree = { - 'base_tree': baseTreeSHA, - 'tree': [{ + base_tree: baseTreeSHA, // eslint-disable-line + tree: [{ path: path, sha: blobSHA, mode: '100644', @@ -279,7 +289,10 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ createTree(tree, baseSHA, cb) { - return this._request('POST', `/repos/${this.__fullname}/git/trees`, {tree, base_tree: baseSHA}, cb); // jscs:ignore + return this._request('POST', `/repos/${this.__fullname}/git/trees`, { + tree, + base_tree: baseSHA // eslint-disable-line + }, cb); } /** @@ -315,7 +328,10 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ updateHead(ref, commitSHA, force, cb) { - return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, {sha: commitSHA, force: force}, cb); + return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, { + sha: commitSHA, + force: force + }, cb); } /** @@ -371,7 +387,9 @@ class Repository extends Requestable { */ getContents(ref, path, raw, cb) { path = path ? `${encodeURI(path)}` : ''; - return this._request('GET', `/repos/${this.__fullname}/contents/${path}`, {ref}, cb, raw); + return this._request('GET', `/repos/${this.__fullname}/contents/${path}`, { + ref + }, cb, raw); } /** @@ -411,7 +429,10 @@ class Repository extends Requestable { return this.getRef(`heads/${oldBranch}`) .then((response) => { let sha = response.data.object.sha; - return this.createRef({sha, ref: `refs/heads/${newBranch}`}, cb); + return this.createRef({ + sha, + ref: `refs/heads/${newBranch}` + }, cb); }); } @@ -502,22 +523,22 @@ class Repository extends Requestable { } /** - * Change all references in a repo from old_path to new_path + * Change all references in a repo from oldPath to new_path * @param {string} branch - the branch to carry out the reference change, or the default branch if not specified - * @param {string} old_path - original path - * @param {string} new_path - new reference path + * @param {string} oldPath - original path + * @param {string} newPath - new reference path * @param {Function} cb - will receive the commit in which the move occurred * @return {Promise} - the promise for the http request */ - move(branch, old_path, new_path, cb) { + move(branch, oldPath, newPath, cb) { return this.getRef(`heads/${branch}`) .then((response) => { return this.getTree(`${response.data.object.sha}?recursive=true`) .then((response) => { - var _resp = response; + let _resp = response; response.data.tree.forEach((ref) => { - if (ref.path === old_path) { - ref.path = new_path; + if (ref.path === oldPath) { + ref.path = newPath; } if (ref.type === 'tree') { delete ref.sha; @@ -525,10 +546,10 @@ class Repository extends Requestable { }); return this.createTree(response.data.tree).then( (response) => { - return this.commit(_resp.data.sha, response.data.sha, `Renamed '${old_path}' to '${new_path}'`) - .then((response) => { - return this.updateHead(`heads/${branch}`, response.data.sha, true, cb); - }); + return this.commit(_resp.data.sha, response.data.sha, `Renamed '${oldPath}' to '${newPath}'`) + .then((response) => { + return this.updateHead(`heads/${branch}`, response.data.sha, true, cb); + }); } ); }); @@ -542,7 +563,7 @@ class Repository extends Requestable { * @param {string} path - the path for the file * @param {string} content - the contents of the file * @param {string} message - the commit message - * @param {Object} [options] + * @param {Object} [options] - commit options * @param {Object} [options.author] - the author of the commit * @param {Object} [options.commiter] - the committer * @param {boolean} [options.encode] - true if the content should be base64 encoded diff --git a/lib/Requestable.js b/lib/Requestable.js index 4b33bed6..c7078fe4 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -88,14 +88,14 @@ class Requestable { * Sets the default options for API requests * @protected * @param {Object} [requestOptions={}] - the current options for the request - * @return - the options to pass to the request + * @return {Object} - the options to pass to the request */ _getOptionsWithDefaults(requestOptions = {}) { if (!(requestOptions.visibility || requestOptions.affiliation)) { requestOptions.type = requestOptions.type || 'all'; } requestOptions.sort = requestOptions.sort || 'updated'; - requestOptions.per_page = requestOptions.per_page || '100'; // jscs:ignore + requestOptions.per_page = requestOptions.per_page || '100'; // eslint-disable-line return requestOptions; } @@ -230,7 +230,15 @@ module.exports = Requestable; // ////////////////////////// // // Private helper functions // // ////////////////////////// // +/** + * The error structure returned when a network call fails + */ class ResponseError extends Error { + /** + * Construct a new ResponseError + * @param {string} path - the requested path + * @param {Object} response - the object returned by Axios + */ constructor(path, response) { super(`error making request ${response.config.method} ${response.config.url}`); this.path = path; diff --git a/lib/Search.js b/lib/Search.js index f134087e..e0bde4fb 100644 --- a/lib/Search.js +++ b/lib/Search.js @@ -43,8 +43,12 @@ class Search extends Requestable { */ _search(path, withOptions = {}, cb = undefined) { let requestOptions = {}; - Object.keys(this.__defaults).forEach((prop) => requestOptions[prop] = this.__defaults[prop]); - Object.keys(withOptions).forEach((prop) => requestOptions[prop] = withOptions[prop]); + Object.keys(this.__defaults).forEach((prop) => { + requestOptions[prop] = this.__defaults[prop]; + }); + Object.keys(withOptions).forEach((prop) => { + requestOptions[prop] = withOptions[prop]; + }); log(`searching ${path} with options:`, requestOptions); return this._requestAllPages(`/search/${path}`, requestOptions, cb); diff --git a/lib/User.js b/lib/User.js index aea35d8a..a2289489 100644 --- a/lib/User.js +++ b/lib/User.js @@ -33,10 +33,11 @@ class User extends Requestable { __getScopedUrl(endpoint) { if (this.__user) { return endpoint ? - `/users/${this.__user}/${endpoint}` - : `/users/${this.__user}` + `/users/${this.__user}/${endpoint}` : + `/users/${this.__user}` ; - } else { + + } else { // eslint-disable-line switch (endpoint) { case '': return '/user'; diff --git a/package.json b/package.json index 50bc39db..71956fed 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "browserify": "^13.0.0", "codecov": "^1.0.1", "del": "^2.2.0", + "eslint-config-google": "^0.5.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.2", "gulp-eslint": "^2.0.0", diff --git a/test/.eslintrc b/test/.eslintrc deleted file mode 100644 index 73d8d9b7..00000000 --- a/test/.eslintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../.eslintrc", - - "env": { - "mocha": true - } -} diff --git a/test/.eslintrc.yaml b/test/.eslintrc.yaml new file mode 100644 index 00000000..59a40fe9 --- /dev/null +++ b/test/.eslintrc.yaml @@ -0,0 +1,6 @@ +--- + extends: ../.eslintrc.yaml + env: + mocha: true + rules: + handle-callback-err: off diff --git a/test/gist.spec.js b/test/gist.spec.js index cd503ca4..0fa476bd 100644 --- a/test/gist.spec.js +++ b/test/gist.spec.js @@ -67,9 +67,9 @@ describe('Gist', function() { }); it('should create a comment a gist', function(done) { - gist.createComment("Comment test", assertSuccessful(done, function(err, comment) { + gist.createComment('Comment test', assertSuccessful(done, function(err, comment) { expect(comment).to.have.own('body', 'Comment test'); - commentId = comment.id + commentId = comment.id; done(); })); }); diff --git a/test/issue.spec.js b/test/issue.spec.js index feefdaab..5da4e0f0 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -132,7 +132,7 @@ describe('Issue', function() { it('should delete issue comment', function(done) { remoteIssues.deleteIssueComment(issueCommentId, assertSuccessful(done, function(err, response) { - expect(response).to.be.true; + expect(response).to.be.true(); done(); })); diff --git a/test/markdown.spec.js b/test/markdown.spec.js index 3e944650..22f5d982 100644 --- a/test/markdown.spec.js +++ b/test/markdown.spec.js @@ -37,7 +37,7 @@ describe('Markdown', function() { }; markdown.render(options) .then(function({data: html}) { - expect(html).to.be('

Hello world github/linguist#1 cool, and #1!

'); // jscs:ignore + expect(html).to.be('

Hello world github/linguist#1 cool, and #1!

'); // eslint-disable-line done(); }).catch(done); }); diff --git a/test/organization.spec.js b/test/organization.spec.js index dd0a32c7..79464ef9 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -65,14 +65,14 @@ describe('Organization', function() { description: 'test create organization repo', homepage: 'https://github.com/', private: false, - has_issues: true, // jscs:ignore - has_wiki: true, // jscs:ignore - has_downloads: true // jscs:ignore + has_issues: true, // eslint-disable-line + has_wiki: true, // eslint-disable-line + has_downloads: true // eslint-disable-line }; organization.createRepo(options, assertSuccessful(done, function(err, repo) { expect(repo.name).to.equal(testRepoName); - expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); // jscs:ignore + expect(repo.full_name).to.equal(`${testUser.ORGANIZATION}/${testRepoName}`); // eslint-disable-line done(); })); }); diff --git a/test/repository.spec.js b/test/repository.spec.js index dbf67286..2bd776ad 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -379,7 +379,7 @@ describe('Repository', function() { sort: 'updated', direction: 'desc', page: 1, - per_page: 10 // jscs:ignore + per_page: 10 //eslint-disable-line }; remoteRepo.listPullRequests(filterOpts, assertSuccessful(done, function(err, pullRequests) { @@ -514,8 +514,8 @@ describe('Repository', function() { it('should create a release', function(done) { const releaseDef = { name: releaseName, - tag_name: releaseTag, // jscs:ignore - target_commitish: sha // jscs:ignore + tag_name: releaseTag, // eslint-disable-line + target_commitish: sha // eslint-disable-line }; remoteRepo.createRelease(releaseDef, assertSuccessful(done, function(err, res) { diff --git a/test/search.spec.js b/test/search.spec.js index 37fa9146..846284a9 100644 --- a/test/search.spec.js +++ b/test/search.spec.js @@ -14,37 +14,41 @@ describe('Search', function() { }); it('should search repositories', function(done) { + let options; let search = github.search({ q: 'tetris language:assembly', sort: 'stars', order: 'desc' }); - let options = undefined; search.forRepositories(options, assertSuccessful(done)); }); it('should search code', function(done) { - let search = github.search({q: 'addClass in:file language:js repo:jquery/jquery'}); - let options = undefined; + let options; + let search = github.search({ + q: 'addClass in:file language:js repo:jquery/jquery' + }); search.forCode(options, assertSuccessful(done)); }); it('should search issues', function(done) { + let options; let search = github.search({ q: 'windows pip label:bug language:python state:open ', sort: 'created', order: 'asc' }); - let options = undefined; search.forIssues(options, assertSuccessful(done)); }); it('should search users', function(done) { - let search = github.search({q: 'tom repos:>42 followers:>1000'}); - let options = undefined; + let options; + let search = github.search({ + q: 'tom repos:>42 followers:>1000' + }); search.forUsers(options, assertSuccessful(done)); }); diff --git a/test/user.spec.js b/test/user.spec.js index c318aa0a..d0874161 100644 --- a/test/user.spec.js +++ b/test/user.spec.js @@ -23,7 +23,7 @@ describe('User', function() { const filterOpts = { type: 'owner', sort: 'updated', - per_page: 90, // jscs:ignore + per_page: 90, // eslint-disable-line page: 10 }; From ce55779922f506c432843cb1324ca35012204139 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 19 May 2016 13:08:27 -0500 Subject: [PATCH 038/137] refactor(repository): make repo#move more promise-y --- lib/Repository.js | 39 +++++++++++++++++---------------------- test/repository.spec.js | 4 ++-- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/lib/Repository.js b/lib/Repository.js index b5086448..52e2813a 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -531,29 +531,24 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ move(branch, oldPath, newPath, cb) { + let oldSha; return this.getRef(`heads/${branch}`) - .then((response) => { - return this.getTree(`${response.data.object.sha}?recursive=true`) - .then((response) => { - let _resp = response; - response.data.tree.forEach((ref) => { - if (ref.path === oldPath) { - ref.path = newPath; - } - if (ref.type === 'tree') { - delete ref.sha; - } - }); - return this.createTree(response.data.tree).then( - (response) => { - return this.commit(_resp.data.sha, response.data.sha, `Renamed '${oldPath}' to '${newPath}'`) - .then((response) => { - return this.updateHead(`heads/${branch}`, response.data.sha, true, cb); - }); - } - ); - }); - }); + .then(({data: {object}}) => this.getTree(`${object.sha}?recursive=true`)) + .then(({data: {tree, sha}}) => { + oldSha = sha; + let newTree = tree.map((ref) => { + if (ref.path === oldPath) { + ref.path = newPath; + } + if (ref.type === 'tree') { + delete ref.sha; + } + return ref; + }); + return this.createTree(newTree); + }) + .then(({data: tree}) => this.commit(oldSha, tree.sha, `Renamed '${oldPath}' to '${newPath}'`)) + .then(({data: commit}) => this.updateHead(`heads/${branch}`, commit.sha, true, cb)); } /** diff --git a/test/repository.spec.js b/test/repository.spec.js index 2bd776ad..adf9cfcc 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -141,7 +141,7 @@ describe('Repository', function() { it('should show repo contributors', function(done) { remoteRepo.getContributors(assertSuccessful(done, function(err, contributors) { if (!(contributors instanceof Array)) { - console.log(contributors); // eslint-disable-line + console.log(JSON.stringify(contributors, null, 2)); // eslint-disable-line } expect(contributors).to.be.an.array(); expect(contributors.length).to.be.above(1); @@ -258,7 +258,7 @@ describe('Repository', function() { it('should show repo collaborators', function(done) { remoteRepo.getCollaborators(assertSuccessful(done, function(err, collaborators) { if (!(collaborators instanceof Array)) { - console.log(collaborators); // eslint-disable-line + console.log(JSON.stringify(collaborators, null, 2)); // eslint-disable-line } expect(collaborators).to.be.an.array(); expect(collaborators).to.have.length(1); From caa3d860513a87939708832660f3a0fee9a32e8f Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 19 May 2016 13:14:58 -0500 Subject: [PATCH 039/137] refactor(user): rename methods to improve internal consistency --- lib/User.js | 10 +++++----- test/auth.spec.js | 4 ++-- test/user.spec.js | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/User.js b/lib/User.js index a2289489..be86c4fc 100644 --- a/lib/User.js +++ b/lib/User.js @@ -59,7 +59,7 @@ class User extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of repositories * @return {Promise} - the promise for the http request */ - getRepos(options, cb) { + listRepos(options, cb) { if (typeof options === 'function') { cb = options; options = {}; @@ -77,7 +77,7 @@ class User extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of organizations * @return {Promise} - the promise for the http request */ - getOrgs(cb) { + listOrgs(cb) { return this._request('GET', this.__getScopedUrl('orgs'), null, cb); } @@ -87,7 +87,7 @@ class User extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of gists * @return {Promise} - the promise for the http request */ - getGists(cb) { + listGists(cb) { return this._request('GET', this.__getScopedUrl('gists'), null, cb); } @@ -98,7 +98,7 @@ class User extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of repositories * @return {Promise} - the promise for the http request */ - getNotifications(options, cb) { + listNotifications(options, cb) { options = options || {}; if (typeof options === 'function') { cb = options; @@ -127,7 +127,7 @@ class User extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of starred repositories * @return {Promise} - the promise for the http request */ - getStarredRepos(cb) { + listStarredRepos(cb) { let requestOptions = this._getOptionsWithDefaults(); return this._requestAllPages(this.__getScopedUrl('starred'), requestOptions, cb); } diff --git a/test/auth.spec.js b/test/auth.spec.js index 5f77d365..806a844d 100644 --- a/test/auth.spec.js +++ b/test/auth.spec.js @@ -25,7 +25,7 @@ describe('Github', function() { }); it('should authenticate and return no errors', function(done) { - user.getNotifications(assertSuccessful(done)); + user.listNotifications(assertSuccessful(done)); }); }); @@ -82,7 +82,7 @@ describe('Github', function() { }); it('should fail authentication and return err', function(done) { - user.getNotifications(assertFailure(done, function(err) { + user.listNotifications(assertFailure(done, function(err) { expect(err.status).to.be.equal(401, 'Return 401 status for bad auth'); expect(err.response.data.message).to.equal('Bad credentials'); diff --git a/test/user.spec.js b/test/user.spec.js index d0874161..81181389 100644 --- a/test/user.spec.js +++ b/test/user.spec.js @@ -16,7 +16,7 @@ describe('User', function() { }); it('should get user repos', function(done) { - user.getRepos(assertArray(done)); + user.listRepos(assertArray(done)); }); it('should get user repos with options', function(done) { @@ -27,19 +27,19 @@ describe('User', function() { page: 10 }; - user.getRepos(filterOpts, assertArray(done)); + user.listRepos(filterOpts, assertArray(done)); }); it('should get user orgs', function(done) { - user.getOrgs(assertArray(done)); + user.listOrgs(assertArray(done)); }); it('should get user gists', function(done) { - user.getGists(assertArray(done)); + user.listGists(assertArray(done)); }); it('should get user notifications', function(done) { - user.getNotifications(assertArray(done)); + user.listNotifications(assertArray(done)); }); it('should get user notifications with options', function(done) { @@ -50,7 +50,7 @@ describe('User', function() { before: '2015-02-01T00:00:00Z' }; - user.getNotifications(filterOpts, assertArray(done)); + user.listNotifications(filterOpts, assertArray(done)); }); it('should get the user\'s profile', function(done) { @@ -58,7 +58,7 @@ describe('User', function() { }); it('should show user\'s starred repos', function(done) { - user.getStarredRepos(assertArray(done)); + user.listStarredRepos(assertArray(done)); }); it('should follow user', function(done) { From a639c59c52a2ec8a929bfa969de74c386a96e258 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 19 May 2016 13:15:16 -0500 Subject: [PATCH 040/137] chore: update changelog --- CHANGELOG.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5650c231..048cbbca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,14 +2,23 @@ ## master ### Features -Added Milestone API -* `Issue.listMilestones` -* `Issue.getMilestone` -* `Issue.editMilestone` -* `Issue.deleteMilestone` ### Fixes +## 2.0.0 +### Breaking +* `Repository#move` has a new argument list +User +* `getRepos` → `listRepos` +* `getOrgs` → `listOrgs` +* `getGists` → `listGists` +* `getNotifications` → `listNotifications` +* `getStarredRepos` → `listStarredRepos` + +### Fixes +* `Repository`: `move` now works +* `User`: `listRepos` + ## 1.2.1 ### Fixes * `Repository`: Replace invalid references to `postTree` with `createTree` From c27af212eddeaf7d1aec365a3d870d862369fd11 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Thu, 19 May 2016 13:15:22 -0500 Subject: [PATCH 041/137] 2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 71956fed..a245c817 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "1.3.0", + "version": "2.0.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From aa7ba49d8b84a3b30a2a0532dfeed9c64f697cb3 Mon Sep 17 00:00:00 2001 From: Randal Pinto Date: Mon, 23 May 2016 14:53:47 +0100 Subject: [PATCH 042/137] feature(repository): add method to get a single commit See: https://developer.github.com/v3/repos/commits/#get-a-single-commit --- lib/Repository.js | 12 ++++++++++++ test/repository.spec.js | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 52e2813a..86c0f0b3 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -174,6 +174,18 @@ class Repository extends Requestable { return this._request('GET', `/repos/${this.__fullname}/commits`, options, cb); } + /** + * Gets a single commit information for a repository + * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit + * @param {string} ref - the reference for the commit-ish + * @param {Requestable.callback} cb - will receive the commit information + * @return {Promise} - the promise for the http request + */ + getSingleCommit(ref, cb) { + ref = ref || ''; + return this._request('GET', `/repos/${this.__fullname}/commits/${ref}`, null, cb); + } + /** * Get tha sha for a particular object in the repository. This is a convenience function * @see https://developer.github.com/v3/repos/contents/#get-contents diff --git a/test/repository.spec.js b/test/repository.spec.js index adf9cfcc..7ed4ad88 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -138,6 +138,23 @@ describe('Repository', function() { })); }); + it('should get the latest commit from master', function(done) { + remoteRepo.getSingleCommit('master', assertSuccessful(done, function(err, commit) { + expect(commit).to.have.own('sha'); + expect(commit).to.have.own('commit'); + expect(commit).to.have.own('author'); + + done(); + })); + }); + + it('should fail when null ref is passed', function(done) { + remoteRepo.getSingleCommit(null, assertFailure(done, function(err) { + expect(err.status).to.be(404); + done(); + })); + }); + it('should show repo contributors', function(done) { remoteRepo.getContributors(assertSuccessful(done, function(err, contributors) { if (!(contributors instanceof Array)) { From 2aa5c11c4bf1d6e86c14611911b2009cc17ea0a2 Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Wed, 25 May 2016 15:48:43 -0600 Subject: [PATCH 043/137] feature(team): add organizaiton team api --- .editorconfig | 1 + .travis.yml | 1 + lib/GitHub.js | 10 +++ lib/Organization.js | 26 +++++++ lib/Requestable.js | 5 +- lib/Team.js | 160 ++++++++++++++++++++++++++++++++++++++ package.json | 1 + test/.eslintrc.yaml | 3 + test/auth.spec.js | 2 +- test/organization.spec.js | 35 +++++++-- test/team.spec.js | 144 ++++++++++++++++++++++++++++++++++ 11 files changed, 380 insertions(+), 8 deletions(-) create mode 100644 lib/Team.js create mode 100644 test/team.spec.js diff --git a/.editorconfig b/.editorconfig index a5a6e6eb..ec408cf1 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,6 +7,7 @@ end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true +max_line_length = 120 [{*.yml,package.json}] indent_size = 2 diff --git a/.travis.yml b/.travis.yml index 3ee3bdd3..ae92414d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +sudo: false language: node_js node_js: - '5' diff --git a/lib/GitHub.js b/lib/GitHub.js index 7bc0b63f..25f9aee7 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -13,6 +13,7 @@ import Search from './Search'; import RateLimit from './RateLimit'; import Repository from './Repository'; import Organization from './Organization'; +import Team from './Team'; import Markdown from './Markdown'; /** @@ -59,6 +60,15 @@ class GitHub { return new Organization(organization, this.__auth, this.__apiBase); } + /** + * create a new Team wrapper + * @param {string} teamId - the name of the team + * @return {team} + */ + getTeam(teamId) { + return new Team(teamId, this.__auth, this.__apiBase); + } + /** * Create a new Repository wrapper * @param {string} user - the user who owns the respository diff --git a/lib/Organization.js b/lib/Organization.js index ac264186..78354a8c 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -67,6 +67,32 @@ class Organization extends Requestable { listMembers(options, cb) { return this._request('GET', `/orgs/${this.__name}/members`, options, cb); } + + /** + * List the Teams in the Organization + * @see https://developer.github.com/v3/orgs/teams/#list-teams + * @param {Requestable.callback} [cb] - will receive the list of teams + * @return {Promise} - the promise for the http request + */ + getTeams(cb) { + return this._requestAllPages(`/orgs/${this.__name}/teams`, undefined, cb); + } + + /** + * Create a team + * @see https://developer.github.com/v3/orgs/teams/#create-team + * @param {object} options - Team creation parameters + * @param {string} options.name - The name of the team + * @param {string} [options.description] - Team description + * @param {string} [options.repo_names] - Repos to add the team to + * @param {string} [options.privacy=secret] - The level of privacy the team should have. Can be either one + * of: `secret`, or `closed` + * @param {Requestable.callback} [cb] - will receive the created team + * @return {Promise} - the promise for the http request + */ + createTeam(options, cb) { + return this._request('POST', `/orgs/${this.__name}/teams`, options, cb); + } } module.exports = Organization; diff --git a/lib/Requestable.js b/lib/Requestable.js index c7078fe4..8823ba8f 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -168,10 +168,11 @@ class Requestable { * @param {string} path - the path to request * @param {Object} data - any query parameters for the request * @param {Requestable.callback} cb - the callback that will receive `true` or `false` + * @param {method} [method=GET] - HTTP Method to use * @return {Promise} - the promise for the http request */ - _request204or404(path, data, cb) { - return this._request('GET', path, data) + _request204or404(path, data, cb, method = 'GET') { + return this._request(method, path, data) .then(function success(response) { if (cb) { cb(null, true, response); diff --git a/lib/Team.js b/lib/Team.js new file mode 100644 index 00000000..fc1d8666 --- /dev/null +++ b/lib/Team.js @@ -0,0 +1,160 @@ +/** + * @file + * @copyright 2016 Matt Smith (Development Seed) + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; +import debug from 'debug'; +const log = debug('github:team'); + +/** + * A Team allows scoping of API requests to a particular Github Organization Team. + */ +class Team extends Requestable { + /** + * Create a Team. + * @param {string} [teamId] - the id for the team + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(teamId, auth, apiBase) { + super(auth, apiBase); + this.__teamId = teamId; + } + + /** + * Get Team information + * @see https://developer.github.com/v3/orgs/teams/#get-team + * @param {Requestable.callback} [cb] - will receive the team + * @return {Promise} - the promise for the http request + */ + getTeam(cb) { + log(`Fetching Team ${this.__teamId}`); + return this._request('Get', `/teams/${this.__teamId}`, undefined, cb); + } + + /** + * List the Team's repositories + * @see https://developer.github.com/v3/orgs/teams/#list-team-repos + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + getRepos(cb) { + log(`Fetching repositories for Team ${this.__teamId}`); + return this._requestAllPages(`/teams/${this.__teamId}/repos`, undefined, cb); + } + + /** + * Edit Team information + * @see https://developer.github.com/v3/orgs/teams/#edit-team + * @param {object} options - Parameters for team edit + * @param {string} options.name - The name of the team + * @param {string} [options.description] - Team description + * @param {string} [options.repo_names] - Repos to add the team to + * @param {string} [options.privacy=secret] - The level of privacy the team should have. Can be either one + * of: `secret`, or `closed` + * @param {Requestable.callback} [cb] - will receive the updated team + * @return {Promise} - the promise for the http request + */ + editTeam(options, cb) { + log(`Editing Team ${this.__teamId}`); + return this._request('PATCH', `/teams/${this.__teamId}`, options, cb); + } + + /** + * List the users who are members of the Team + * @see https://developer.github.com/v3/orgs/teams/#list-team-members + * @param {object} options - Parameters for listing team users + * @param {string} [options.role=all] - can be one of: `all`, `maintainer`, or `member` + * @param {Requestable.callback} [cb] - will receive the list of users + * @return {Promise} - the promise for the http request + */ + listMembers(options, cb) { + log(`Getting members of Team ${this.__teamId}`); + return this._requestAllPages(`/teams/${this.__teamId}/members`, options, cb); + } + + /** + * Get Team membership status for a user + * @see https://developer.github.com/v3/orgs/teams/#get-team-membership + * @param {string} username - can be one of: `all`, `maintainer`, or `member` + * @param {Requestable.callback} [cb] - will receive the membership status of a user + * @return {Promise} - the promise for the http request + */ + getMembership(username, cb) { + log(`Getting membership of user ${username} in Team ${this.__teamId}`); + return this._request('GET', `/teams/${this.__teamId}/memberships/${username}`, undefined, cb); + } + + /** + * Add a member to the Team + * @see https://developer.github.com/v3/orgs/teams/#add-team-membership + * @param {string} username - can be one of: `all`, `maintainer`, or `member` + * @param {object} options - Parameters for adding a team member + * @param {string} [options.role=member] - The role that this user should have in the team. Can be one + * of: `member`, or `maintainer` + * @param {Requestable.callback} [cb] - will receive the membership status of added user + * @return {Promise} - the promise for the http request + */ + addMembership(username, options, cb) { + log(`Adding user ${username} to Team ${this.__teamId}`); + return this._request('PUT', `/teams/${this.__teamId}/memberships/${username}`, options, cb); + } + + /** + * Get repo management status for team + * @see https://developer.github.com/v3/orgs/teams/#remove-team-membership + * @param {string} owner - Organization name + * @param {string} repo - Repo name + * @param {Requestable.callback} [cb] - will receive the membership status of added user + * @return {Promise} - the promise for the http request + */ + isManagedRepo(owner, repo, cb) { + log(`Getting repo management by Team ${this.__teamId} for repo ${owner}/${repo}`); + return this._request204or404(`/teams/${this.__teamId}/repos/${owner}/${repo}`, undefined, cb); + } + + /** + * Add or Update repo management status for team + * @see https://developer.github.com/v3/orgs/teams/#add-or-update-team-repository + * @param {string} owner - Organization name + * @param {string} repo - Repo name + * @param {object} options - Parameters for adding or updating repo management for the team + * @param {string} [options.permission] - The permission to grant the team on this repository. Can be one + * of: `pull`, `push`, or `admin` + * @param {Requestable.callback} [cb] - will receive the membership status of added user + * @return {Promise} - the promise for the http request + */ + manageRepo(owner, repo, options, cb) { + log(`Adding or Updating repo management by Team ${this.__teamId} for repo ${owner}/${repo}`); + return this._request204or404(`/teams/${this.__teamId}/repos/${owner}/${repo}`, options, cb, 'PUT'); + } + + /** + * Remove repo management status for team + * @see https://developer.github.com/v3/orgs/teams/#remove-team-repository + * @param {string} owner - Organization name + * @param {string} repo - Repo name + * @param {Requestable.callback} [cb] - will receive the membership status of added user + * @return {Promise} - the promise for the http request + */ + unmanageRepo(owner, repo, cb) { + log(`Remove repo management by Team ${this.__teamId} for repo ${owner}/${repo}`); + return this._request204or404(`/teams/${this.__teamId}/repos/${owner}/${repo}`, undefined, cb, 'DELETE'); + } + + /** + * Delete Team + * @see https://developer.github.com/v3/orgs/teams/#delete-team + * @param {Requestable.callback} [cb] - will receive the list of repositories + * @return {Promise} - the promise for the http request + */ + deleteTeam(cb) { + log(`Deleting Team ${this.__teamId}`); + return this._request204or404(`/teams/${this.__teamId}`, undefined, cb, 'DELETE'); + } +} + +module.exports = Team; diff --git a/package.json b/package.json index a245c817..e7d1fb35 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "codecov": "^1.0.1", "del": "^2.2.0", "eslint-config-google": "^0.5.0", + "eslint-plugin-mocha": "^2.2.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.2", "gulp-eslint": "^2.0.0", diff --git a/test/.eslintrc.yaml b/test/.eslintrc.yaml index 59a40fe9..2582b354 100644 --- a/test/.eslintrc.yaml +++ b/test/.eslintrc.yaml @@ -1,6 +1,9 @@ --- extends: ../.eslintrc.yaml + plugins: + - mocha env: mocha: true rules: handle-callback-err: off + mocha/no-exclusive-tests: 2 diff --git a/test/auth.spec.js b/test/auth.spec.js index 806a844d..2c03d766 100644 --- a/test/auth.spec.js +++ b/test/auth.spec.js @@ -51,7 +51,7 @@ describe('Github', function() { done(); } catch (e) { try { - if (err && err.request.headers['x-ratelimit-remaining'] === '0') { + if (err && err.response.headers['x-ratelimit-remaining'] === '0') { done(); return; } diff --git a/test/organization.spec.js b/test/organization.spec.js index 79464ef9..9d5f75f6 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -42,12 +42,11 @@ describe('Organization', function() { }).catch(done); }); - it('should test for membership', function(done) { - organization.isMember(MEMBER_NAME) + it('should test for membership', function() { + return organization.isMember(MEMBER_NAME) .then(function(isMember) { expect(isMember).to.be.true(); - done(); - }).catch(done); + }); }); }); @@ -59,7 +58,7 @@ describe('Organization', function() { organization = github.getOrganization(testUser.ORGANIZATION); }); - it('should create an organisation repo', function(done) { + it('should create an organization repo', function(done) { const options = { name: testRepoName, description: 'test create organization repo', @@ -76,5 +75,31 @@ describe('Organization', function() { done(); })); }); + + // TODO: The longer this is in place the slower it will get if we don't cleanup random test teams + it('should list the teams in the organization', function() { + return organization.getTeams() + .then(({data}) => { + const hasTeam = data.reduce( + (found, member) => member.slug === 'fixed-test-team-1' || found, + false); + + expect(hasTeam).to.be.true(); + }); + }); + + it('should create an organization team', function(done) { + const options = { + name: testRepoName, + description: 'Created by unit tests', + privacy: 'secret' + }; + + organization.createTeam(options, assertSuccessful(done, function(err, team) { + expect(team.name).to.equal(testRepoName); + expect(team.organization.login).to.equal(testUser.ORGANIZATION); // jscs:ignore + done(); + })); + }); }); }); diff --git a/test/team.spec.js b/test/team.spec.js new file mode 100644 index 00000000..9d03c04a --- /dev/null +++ b/test/team.spec.js @@ -0,0 +1,144 @@ +import expect from 'must'; + +import Github from '../lib/GitHub'; +import testUser from './fixtures/user.json'; +import {assertFailure} from './helpers/callbacks'; +import getTestRepoName from './helpers/getTestRepoName'; + +const altUser = { + USERNAME: 'mtscout6-test' +}; + +function createTestTeam() { + const name = getTestRepoName(); + + const github = new Github({ + username: testUser.USERNAME, + password: testUser.PASSWORD, + auth: 'basic' + }); + + const org = github.getOrganization(testUser.ORGANIZATION); + + return org.createTeam({ + name, + privacy: 'closed' + }).then(({data: result}) => { + const team = github.getTeam(result.id); + return {team, name}; + }); +} + +let team; +let name; + +describe('Team', function() { // Isolate tests that are based on a fixed team + before(function() { + const github = new Github({ + username: testUser.USERNAME, + password: testUser.PASSWORD, + auth: 'basic' + }); + + team = github.getTeam(2027812); // github-api-tests/fixed-test-team-1 + }); + + it('should get membership for a given user', function() { + return team.getMembership(altUser.USERNAME) + .then(function({data}) { + expect(data.state).to.equal('active'); + expect(data.role).to.equal('member'); + }); + }); + + it('should list the users in the team', function() { + return team.listMembers() + .then(function({data: members}) { + expect(members).to.be.an.array(); + + let hasTestUser = members.reduce( + (found, member) => member.login === testUser.USERNAME || found, + false); + + expect(hasTestUser).to.be.true(); + }); + }); + + it('should get team repos', function() { + return team.getRepos() + .then(({data}) => { + const hasRepo = data.reduce( + (found, repo) => repo.name === 'fixed-test-repo-1' || found, + false); + + expect(hasRepo).to.be.true(); + }); + }); + + it('should get team', function() { + return team.getTeam() + .then(({data}) => { + expect(data.name).to.equal('Fixed Test Team 1'); + }); + }); + + it('should check if team manages repo', function() { + return team.isManagedRepo(testUser.ORGANIZATION, 'fixed-test-repo-1') + .then((result) => { + expect(result).to.be.true(); + }); + }); +}); + +describe('Team', function() { // Isolate tests that need a new team per test + beforeEach(function() { + return createTestTeam() + .then((x) => { + team = x.team; + name = x.name; + }); + }); + + // Test for Team deletion + afterEach(function(done) { + team.deleteTeam() + .then(() => team.getTeam(assertFailure(done))); + }); + + it('should update team', function() { + const newName = `${name}-updated`; + return team.editTeam({name: newName}) + .then(function({data}) { + expect(data.name).to.equal(newName); + }); + }); + + it('should add membership for a given user', function() { + return team.addMembership(testUser.USERNAME) + .then(({data}) => { + const {state, role} = data; + expect(state === 'active' || state === 'pending').to.be.true(); + expect(role).to.equal('member'); + }); + }); + + it('should add membership as a maintainer for a given user', function() { + return team.addMembership(altUser.USERNAME, {role: 'maintainer'}) + .then(({data}) => { + const {state, role} = data; + expect(state === 'active' || state === 'pending').to.be.true(); + expect(role).to.equal('maintainer'); + }); + }); + + it('should add/remove team management of repo', function() { + return team.manageRepo(testUser.ORGANIZATION, 'fixed-test-repo-1', {permission: 'pull'}) + .then((result) => { + expect(result).to.be.true(); + return team.unmanageRepo(testUser.ORGANIZATION, 'fixed-test-repo-1'); + }) + .then((result) => { + expect(result).to.be.true(); + }); + }); +}); From 7d9afd04f94c591ccdae995423e9ddd25f7bb757 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 25 May 2016 17:09:48 -0500 Subject: [PATCH 044/137] refactor: rename Team.getRepos to Team.listRepos --- lib/Team.js | 2 +- test/team.spec.js | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/lib/Team.js b/lib/Team.js index fc1d8666..f91c9173 100644 --- a/lib/Team.js +++ b/lib/Team.js @@ -41,7 +41,7 @@ class Team extends Requestable { * @param {Requestable.callback} [cb] - will receive the list of repositories * @return {Promise} - the promise for the http request */ - getRepos(cb) { + listRepos(cb) { log(`Fetching repositories for Team ${this.__teamId}`); return this._requestAllPages(`/teams/${this.__teamId}/repos`, undefined, cb); } diff --git a/test/team.spec.js b/test/team.spec.js index 9d03c04a..1f712617 100644 --- a/test/team.spec.js +++ b/test/team.spec.js @@ -58,45 +58,47 @@ describe('Team', function() { // Isolate tests that are based on a fixed team let hasTestUser = members.reduce( (found, member) => member.login === testUser.USERNAME || found, - false); + false + ); expect(hasTestUser).to.be.true(); }); }); it('should get team repos', function() { - return team.getRepos() - .then(({data}) => { - const hasRepo = data.reduce( - (found, repo) => repo.name === 'fixed-test-repo-1' || found, - false); - - expect(hasRepo).to.be.true(); - }); + return team.listRepos() + .then(({data}) => { + const hasRepo = data.reduce( + (found, repo) => repo.name === 'fixed-test-repo-1' || found, + false + ); + + expect(hasRepo).to.be.true(); + }); }); it('should get team', function() { return team.getTeam() - .then(({data}) => { - expect(data.name).to.equal('Fixed Test Team 1'); - }); + .then(({data}) => { + expect(data.name).to.equal('Fixed Test Team 1'); + }); }); it('should check if team manages repo', function() { return team.isManagedRepo(testUser.ORGANIZATION, 'fixed-test-repo-1') - .then((result) => { - expect(result).to.be.true(); - }); + .then((result) => { + expect(result).to.be.true(); + }); }); }); describe('Team', function() { // Isolate tests that need a new team per test beforeEach(function() { return createTestTeam() - .then((x) => { - team = x.team; - name = x.name; - }); + .then((x) => { + team = x.team; + name = x.name; + }); }); // Test for Team deletion @@ -108,9 +110,9 @@ describe('Team', function() { // Isolate tests that need a new team per test it('should update team', function() { const newName = `${name}-updated`; return team.editTeam({name: newName}) - .then(function({data}) { - expect(data.name).to.equal(newName); - }); + .then(function({data}) { + expect(data.name).to.equal(newName); + }); }); it('should add membership for a given user', function() { From 42cb9704379093d0837946eda93ab5adc0de2bbe Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 25 May 2016 16:56:14 -0500 Subject: [PATCH 045/137] chore: update Readme to reflect 2.x breaking change; drop 0.10 test on 6.x; update changelog Fixes #338 --- .travis.yml | 3 ++- CHANGELOG.md | 14 +++++++++++++- README.md | 30 +++++++++++++++--------------- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index ae92414d..c00581ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,11 @@ sudo: false language: node_js node_js: + - '6' - '5' - '4' - '0.12' - - '0.10' + cache: directories: - node_modules diff --git a/CHANGELOG.md b/CHANGELOG.md index 048cbbca..b82ab5b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,19 @@ # Change Log -## master +## 2.1.0 ### Features +Team API +* `Organization.getTeams` +* `Team.getTeam` +* `Team.listRepos` +* `Team.editTeam` +* `Team.listMembers` +* `Team.getMembership` +* `Team.addMembership` +* `Team.isManagedRepo` +* `Team.manageRepo` +* `Team.unmanageRepo` +* `Team.deleteTeam` ### Fixes diff --git a/README.md b/README.md index 98716949..28f61b90 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,10 @@ npm install github-api ## Compatibility Github.js is tested on Node: +* 6.x * 5.x * 4.x * 0.12 -* 0.10 ## GitHub Tools @@ -47,11 +47,11 @@ as well. In the meantime, we recommend you to take a look at other projects of t or using a new promise-based API. For now the promise-based API just returns the raw HTTP request promise; this might change in the next version. */ -var GitHub = require('github-api'); +import GitHub from 'github-api'; // unauthenticated client -var gh = new GitHub(); -var gist = gh.getGist(); // not a gist yet +const gh = new GitHub(); +let gist = gh.getGist(); // not a gist yet gist.create({ public: true, description: 'My first gist', @@ -60,37 +60,37 @@ gist.create({ contents: "Aren't gists great!" } } -}).then(function(httpResponse) { +}).then(function({data}) { // Promises! - var gist = httpResponse.data; + let gistJson = data; gist.read(function(err, gist, xhr) { // if no error occurred then err == null - // gist == httpResponse.data + // gistJson === httpResponse.data - // xhr == httpResponse + // xhr === httpResponse }); }); ``` ```javascript -var GitHub = require('github-api'); +import GitHub from 'github-api'; // basic auth -var gh = new GitHub({ +const gh = new GitHub({ username: 'FOO', password: 'NotFoo' }); -var me = gh.getUser(); -me.getNotification(function(err, notifcations) { +const me = gh.getUser(); +me.listNotifications(function(err, notifcations) { // do some stuff }); -var clayreimann = gh.getUser('clayreimann'); +const clayreimann = gh.getUser('clayreimann'); clayreimann.getStarredRepos() - .then(function(httpPromise) { - var repos = httpPromise.data; + .then(function({data: reposJson}) { + // do stuff with reposJson }); ``` From 548757d5a0371062b1429dc82606ed8ed1f1f693 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 25 May 2016 17:13:43 -0500 Subject: [PATCH 046/137] adding docs for v2.0.0 --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b82ab5b5..c3a01047 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,8 +15,6 @@ Team API * `Team.unmanageRepo` * `Team.deleteTeam` -### Fixes - ## 2.0.0 ### Breaking * `Repository#move` has a new argument list From 187d0a43d57c53f73d66fcf43a2b80f2435e1233 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 25 May 2016 17:19:34 -0500 Subject: [PATCH 047/137] 2.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e7d1fb35..b0f128fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "2.0.0", + "version": "2.1.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 9d59b2839b071c327e60790a845bce69265f249a Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 25 May 2016 17:25:10 -0500 Subject: [PATCH 048/137] chore: fix release script so that a version bump level is required [ci skip] --- release.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/release.sh b/release.sh index 994df005..0b3a3c37 100755 --- a/release.sh +++ b/release.sh @@ -4,6 +4,12 @@ # make sure all our dependencies are installed so we can publish docs npm install +# guard against stupid +if [ -z "$1" ]; then + echo "You must specify a new version level: [patch, minor, major]"; + exit 1; +fi + # bump the version echo "npm version $1" npm version $1 From 02daa5cb6d0e4d65cd4c1f23be39f8e8ef94cb5e Mon Sep 17 00:00:00 2001 From: Matt Smith Date: Fri, 27 May 2016 12:29:28 -0600 Subject: [PATCH 049/137] chore: Add missed method to changelog for 2.1.0 release (#339) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3a01047..bfe90247 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 2.1.0 ### Features Team API +* `Organization.createTeam` * `Organization.getTeams` * `Team.getTeam` * `Team.listRepos` From 2d102be55af850f4867281fc31a003b4b479d969 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 27 May 2016 13:35:03 -0500 Subject: [PATCH 050/137] feature(issue): allow users to fetch an issue's events closes #180 --- CHANGELOG.md | 6 ++++++ lib/Issue.js | 11 +++++++++++ test/issue.spec.js | 7 +++++++ 3 files changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfe90247..21d8f014 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## master +### Features +* add `Issue.listIssueEvents` + +### Fixes + ## 2.1.0 ### Features Team API diff --git a/lib/Issue.js b/lib/Issue.js index 2b2fc9dc..d5c03d4a 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -44,6 +44,17 @@ class Issue extends Requestable { return this._requestAllPages(`/repos/${this.__repository}/issues`, options, cb); } + /** + * List the events for an issue + * @see https://developer.github.com/v3/issues/events/#list-events-for-an-issue + * @param {number} issue - the issue to get events for + * @param {Requestable.callback} [cb] - will receive the list of events + * @return {Promise} - the promise for the http request + */ + listIssueEvents(issue, cb) { + return this._request('GET', `/repos/${this.__repository}/issues/${issue}/events`, null, cb); + } + /** * List comments on an issue * @see https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue diff --git a/test/issue.spec.js b/test/issue.spec.js index 5da4e0f0..ce502cec 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -39,6 +39,13 @@ describe('Issue', function() { })); }); + it('should get issue events', function() { + return remoteIssues.listIssueEvents(remoteIssueId) + .then(function({data: events}) { + expect(events).to.be.an.array(); + }); + }); + it('should get all milestones', function(done) { remoteIssues.listMilestones() .then(({data: milestones}) => { From 7c734635b849e6a25c172716bd2e7b30e9125e23 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 27 May 2016 14:40:41 -0500 Subject: [PATCH 051/137] fix(search): compensate for the search api returning an object instead of an array closes #335 --- CHANGELOG.md | 11 +++++----- lib/Requestable.js | 53 +++++++++++++++++++++++++++------------------ test/search.spec.js | 36 ++++++++++++++++++++++-------- 3 files changed, 65 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21d8f014..4684efb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,13 @@ # Change Log -## master +## 2.2.0 - 2016/05/27 ### Features * add `Issue.listIssueEvents` ### Fixes +* Search returns results again -## 2.1.0 +## 2.1.0 - 2016/05/26 ### Features Team API * `Organization.createTeam` @@ -40,7 +41,7 @@ User ### Fixes * `Repository`: Replace invalid references to `postTree` with `createTree` -## 1.2.0 - 2015/05/11 +## 1.2.0 - 2016/05/11 ### Features * Search API now returns all pages of results * Added `Repository.listReleases` @@ -58,7 +59,7 @@ Added functions for issue comments ### Fixes * all functions now return a Promise -## 1.1.0 - 2015/05/03 +## 1.1.0 - 2016/05/03 ### Features Added methods for commenting on Gists: * `Gist.listComments` @@ -70,7 +71,7 @@ Added methods for commenting on Gists: ### Fixes * `Repository.deleteFile` now correctly returns a promise. -## 1.0.0 - 2015/04/27 +## 1.0.0 - 2016/04/27 Complete rewrite in ES2015. * Promise-ified the API diff --git a/lib/Requestable.js b/lib/Requestable.js index 8823ba8f..fa26d9d6 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -16,6 +16,25 @@ if (typeof Promise === 'undefined') { polyfill(); } +/** + * The error structure returned when a network call fails + */ +class ResponseError extends Error { + /** + * Construct a new ResponseError + * @param {string} message - an message to return instead of the the default error message + * @param {string} path - the requested path + * @param {Object} response - the object returned by Axios + */ + constructor(message, path, response) { + super(message); + this.path = path; + this.request = response.config; + this.response = response; + this.status = response.status; + } +} + /** * Requestable wraps the logic for making http requests to the API */ @@ -208,7 +227,16 @@ class Requestable { return this._request('GET', path, options) .then((response) => { - results.push.apply(results, response.data); + let thisGroup; + if (response.data instanceof Array) { + thisGroup = response.data; + } else if (response.data.items instanceof Array) { + thisGroup = response.data.items; + } else { + let message = `cannot figure out how to append ${response.data} to the result set`; + throw new ResponseError(message, path, response); + } + results.push.apply(results, thisGroup); const nextUrl = getNextPage(response.headers.link); if (nextUrl) { @@ -231,24 +259,6 @@ module.exports = Requestable; // ////////////////////////// // // Private helper functions // // ////////////////////////// // -/** - * The error structure returned when a network call fails - */ -class ResponseError extends Error { - /** - * Construct a new ResponseError - * @param {string} path - the requested path - * @param {Object} response - the object returned by Axios - */ - constructor(path, response) { - super(`error making request ${response.config.method} ${response.config.url}`); - this.path = path; - this.request = response.config; - this.response = response; - this.status = response.status; - } -} - const METHODS_WITH_NO_BODY = ['GET', 'HEAD', 'DELETE']; function methodHasNoBody(method) { return METHODS_WITH_NO_BODY.indexOf(method) !== -1; @@ -267,8 +277,9 @@ function getNextPage(linksHeader = '') { function callbackErrorOrThrow(cb, path) { return function handler(response) { - log(`error making request ${response.config.method} ${response.config.url} ${JSON.stringify(response.data)}`); - let error = new ResponseError(path, response); + let message = `error making request ${response.config.method} ${response.config.url}`; + let error = new ResponseError(message, path, response); + log(`${message} ${JSON.stringify(response.data)}`); if (cb) { log('going to error callback'); cb(error); diff --git a/test/search.spec.js b/test/search.spec.js index 846284a9..c53326d1 100644 --- a/test/search.spec.js +++ b/test/search.spec.js @@ -1,8 +1,10 @@ +import expect from 'must'; + import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; -import {assertSuccessful} from './helpers/callbacks'; describe('Search', function() { + this.timeout(20 * 1000); let github; before(function() { @@ -13,7 +15,7 @@ describe('Search', function() { }); }); - it('should search repositories', function(done) { + it('should search repositories', function() { let options; let search = github.search({ q: 'tetris language:assembly', @@ -21,19 +23,27 @@ describe('Search', function() { order: 'desc' }); - search.forRepositories(options, assertSuccessful(done)); + return search.forRepositories(options) + .then(function({data}) { + expect(data).to.be.an.array(); + expect(data.length).to.be.above(0); + }); }); - it('should search code', function(done) { + it('should search code', function() { let options; let search = github.search({ q: 'addClass in:file language:js repo:jquery/jquery' }); - search.forCode(options, assertSuccessful(done)); + return search.forCode(options) + .then(function({data}) { + expect(data).to.be.an.array(); + expect(data.length).to.be.above(0); + }); }); - it('should search issues', function(done) { + it('should search issues', function() { let options; let search = github.search({ q: 'windows pip label:bug language:python state:open ', @@ -41,15 +51,23 @@ describe('Search', function() { order: 'asc' }); - search.forIssues(options, assertSuccessful(done)); + return search.forIssues(options) + .then(function({data}) { + expect(data).to.be.an.array(); + expect(data.length).to.be.above(0); + }); }); - it('should search users', function(done) { + it('should search users', function() { let options; let search = github.search({ q: 'tom repos:>42 followers:>1000' }); - search.forUsers(options, assertSuccessful(done)); + return search.forUsers(options) + .then(function({data}) { + expect(data).to.be.an.array(); + expect(data.length).to.be.above(0); + }); }); }); From 7748652270092a169ab8813d1f0351393ac4a462 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 27 May 2016 14:42:45 -0500 Subject: [PATCH 052/137] 2.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b0f128fb..f6626629 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "2.1.0", + "version": "2.2.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 99b7e4b1c1897688e59938d9ab7028e9bea7b6aa Mon Sep 17 00:00:00 2001 From: Matthew Versluys Date: Thu, 2 Jun 2016 08:27:58 -0700 Subject: [PATCH 053/137] feature(repository): add getReadme Provides support for the preferred method of retrieving the README from a repository, as opposed to using `getContents`. --- lib/Repository.js | 14 ++++++++++++++ test/repository.spec.js | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 86c0f0b3..d77a0006 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -404,6 +404,20 @@ class Repository extends Requestable { }, cb, raw); } + /** + * Get the README of a repository + * @see https://developer.github.com/v3/repos/contents/#get-the-readme + * @param {string} ref - the ref to check + * @param {boolean} raw - `true` if the results should be returned raw instead of GitHub's normalized format + * @param {Function} cb - will receive the fetched data + * @return {Promise} - the promise for the http request + */ + getReadme(ref, raw, cb) { + return this._request('GET', `/repos/${this.__fullname}/readme`, { + ref + }, cb, raw); + } + /** * Fork a repository * @see https://developer.github.com/v3/repos/forks/#create-a-fork diff --git a/test/repository.spec.js b/test/repository.spec.js index 7ed4ad88..3afaff07 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -75,6 +75,14 @@ describe('Repository', function() { })); }); + it('should show repo readme', function(done) { + remoteRepo.getReadme('master', 'raw', assertSuccessful(done, function(err, text) { + expect(text).to.contain('# Github.js'); + + done(); + })); + }); + it('should get ref from repo', function(done) { remoteRepo.getRef('heads/master', assertSuccessful(done)); }); From 2ddd1793581a16996c41675b9a601c814012b4c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Lund=C3=A9n?= Date: Tue, 14 Jun 2016 19:31:44 +0200 Subject: [PATCH 054/137] chore: remove "foo" parameter from JSDoc --- lib/GitHub.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/GitHub.js b/lib/GitHub.js index 25f9aee7..944fc868 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -53,7 +53,6 @@ class GitHub { /** * Create a new Organization wrapper * @param {string} organization - the name of the organization - * @param {string} foo - this * @return {Organization} */ getOrganization(organization) { From a91fc87a0591961b46c780e55cfbafc1d0ea1a70 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Wed, 15 Jun 2016 17:05:58 +0100 Subject: [PATCH 055/137] chore: updated callbacks to be Requestable.callback Closes gh-351 --- lib/Repository.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/lib/Repository.js b/lib/Repository.js index d77a0006..d8da0d45 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -313,7 +313,7 @@ class Repository extends Requestable { * @param {string} parent - the SHA of the parent commit * @param {string} tree - the SHA of the tree for this commit * @param {string} message - the commit message - * @param {Function} cb - will receive the commit that is created + * @param {Requestable.callback} cb - will receive the commit that is created * @return {Promise} - the promise for the http request */ commit(parent, tree, message, cb) { @@ -336,7 +336,7 @@ class Repository extends Requestable { * @param {string} ref - the ref to update * @param {string} commitSHA - the SHA to point the reference to * @param {boolean} force - indicates whether to force or ensure a fast-forward update - * @param {Function} cb - will receive the updated ref back + * @param {Requestable.callback} cb - will receive the updated ref back * @return {Promise} - the promise for the http request */ updateHead(ref, commitSHA, force, cb) { @@ -349,7 +349,7 @@ class Repository extends Requestable { /** * Get information about the repository * @see https://developer.github.com/v3/repos/#get - * @param {Function} cb - will receive the information about the repository + * @param {Requestable.callback} cb - will receive the information about the repository * @return {Promise} - the promise for the http request */ getDetails(cb) { @@ -359,7 +359,7 @@ class Repository extends Requestable { /** * List the contributors to the repository * @see https://developer.github.com/v3/repos/#list-contributors - * @param {Function} cb - will receive the list of contributors + * @param {Requestable.callback} cb - will receive the list of contributors * @return {Promise} - the promise for the http request */ getContributors(cb) { @@ -370,7 +370,7 @@ class Repository extends Requestable { * List the users who are collaborators on the repository. The currently authenticated user must have * push access to use this method * @see https://developer.github.com/v3/repos/collaborators/#list-collaborators - * @param {Function} cb - will receive the list of collaborators + * @param {Requestable.callback} cb - will receive the list of collaborators * @return {Promise} - the promise for the http request */ getCollaborators(cb) { @@ -381,7 +381,7 @@ class Repository extends Requestable { * Check if a user is a collaborator on the repository * @see https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator * @param {string} username - the user to check - * @param {Function} cb - will receive true if the user is a collaborator and false if they are not + * @param {Requestable.callback} cb - will receive true if the user is a collaborator and false if they are not * @return {Promise} - the promise for the http request {Boolean} [description] */ isCollaborator(username, cb) { @@ -394,7 +394,7 @@ class Repository extends Requestable { * @param {string} ref - the ref to check * @param {string} path - the path containing the content to fetch * @param {boolean} raw - `true` if the results should be returned raw instead of GitHub's normalized format - * @param {Function} cb - will receive the fetched data + * @param {Requestable.callback} cb - will receive the fetched data * @return {Promise} - the promise for the http request */ getContents(ref, path, raw, cb) { @@ -409,7 +409,7 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/contents/#get-the-readme * @param {string} ref - the ref to check * @param {boolean} raw - `true` if the results should be returned raw instead of GitHub's normalized format - * @param {Function} cb - will receive the fetched data + * @param {Requestable.callback} cb - will receive the fetched data * @return {Promise} - the promise for the http request */ getReadme(ref, raw, cb) { @@ -421,7 +421,7 @@ class Repository extends Requestable { /** * Fork a repository * @see https://developer.github.com/v3/repos/forks/#create-a-fork - * @param {Function} cb - will receive the information about the newly created fork + * @param {Requestable.callback} cb - will receive the information about the newly created fork * @return {Promise} - the promise for the http request */ fork(cb) { @@ -431,7 +431,7 @@ class Repository extends Requestable { /** * List a repository's forks * @see https://developer.github.com/v3/repos/forks/#list-forks - * @param {Function} cb - will receive the list of repositories forked from this one + * @param {Requestable.callback} cb - will receive the list of repositories forked from this one * @return {Promise} - the promise for the http request */ listForks(cb) { @@ -442,7 +442,7 @@ class Repository extends Requestable { * Create a new branch from an existing branch. * @param {string} [oldBranch=master] - the name of the existing branch * @param {string} newBranch - the name of the new branch - * @param {Function} cb - will receive the commit data for the head of the new branch + * @param {Requestable.callback} cb - will receive the commit data for the head of the new branch * @return {Promise} - the promise for the http request */ createBranch(oldBranch, newBranch, cb) { @@ -466,7 +466,7 @@ class Repository extends Requestable { * Create a new pull request * @see https://developer.github.com/v3/pulls/#create-a-pull-request * @param {Object} options - the pull request description - * @param {Function} cb - will receive the new pull request + * @param {Requestable.callback} cb - will receive the new pull request * @return {Promise} - the promise for the http request */ createPullRequest(options, cb) { @@ -476,7 +476,7 @@ class Repository extends Requestable { /** * List the hooks for the repository * @see https://developer.github.com/v3/repos/hooks/#list-hooks - * @param {Function} cb - will receive the list of hooks + * @param {Requestable.callback} cb - will receive the list of hooks * @return {Promise} - the promise for the http request */ listHooks(cb) { @@ -487,7 +487,7 @@ class Repository extends Requestable { * Get a hook for the repository * @see https://developer.github.com/v3/repos/hooks/#get-single-hook * @param {number} id - the id of the webook - * @param {Function} cb - will receive the details of the webook + * @param {Requestable.callback} cb - will receive the details of the webook * @return {Promise} - the promise for the http request */ getHook(id, cb) { @@ -498,7 +498,7 @@ class Repository extends Requestable { * Add a new hook to the repository * @see https://developer.github.com/v3/repos/hooks/#create-a-hook * @param {Object} options - the configuration describing the new hook - * @param {Function} cb - will receive the new webhook + * @param {Requestable.callback} cb - will receive the new webhook * @return {Promise} - the promise for the http request */ createHook(options, cb) { @@ -510,7 +510,7 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/hooks/#edit-a-hook * @param {number} id - the id of the webhook * @param {Object} options - the new description of the webhook - * @param {Function} cb - will receive the updated webhook + * @param {Requestable.callback} cb - will receive the updated webhook * @return {Promise} - the promise for the http request */ updateHook(id, options, cb) { @@ -521,7 +521,7 @@ class Repository extends Requestable { * Delete a webhook * @see https://developer.github.com/v3/repos/hooks/#delete-a-hook * @param {number} id - the id of the webhook to be deleted - * @param {Function} cb - will receive true if the call is successful + * @param {Requestable.callback} cb - will receive true if the call is successful * @return {Promise} - the promise for the http request */ deleteHook(id, cb) { @@ -533,7 +533,7 @@ class Repository extends Requestable { * @see https://developer.github.com/v3/repos/contents/#delete-a-file * @param {string} branch - the branch to delete from, or the default branch if not specified * @param {string} path - the path of the file to remove - * @param {Function} cb - will receive the commit in which the delete occurred + * @param {Requestable.callback} cb - will receive the commit in which the delete occurred * @return {Promise} - the promise for the http request */ deleteFile(branch, path, cb) { @@ -553,7 +553,7 @@ class Repository extends Requestable { * @param {string} branch - the branch to carry out the reference change, or the default branch if not specified * @param {string} oldPath - original path * @param {string} newPath - new reference path - * @param {Function} cb - will receive the commit in which the move occurred + * @param {Requestable.callback} cb - will receive the commit in which the move occurred * @return {Promise} - the promise for the http request */ move(branch, oldPath, newPath, cb) { @@ -588,7 +588,7 @@ class Repository extends Requestable { * @param {Object} [options.author] - the author of the commit * @param {Object} [options.commiter] - the committer * @param {boolean} [options.encode] - true if the content should be base64 encoded - * @param {Function} cb - will receive the new commit + * @param {Requestable.callback} cb - will receive the new commit * @return {Promise} - the promise for the http request */ writeFile(branch, path, content, message, options, cb) { From 7ac1633ea979aea6d03a5b83b4b2c2de46c98566 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Fri, 17 Jun 2016 12:10:14 +0100 Subject: [PATCH 056/137] chore: removed use strict statement in Repository.js Closes gh-349 --- lib/Repository.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index d8da0d45..e2277780 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -1,4 +1,3 @@ -'use strict'; /** * @file * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. From f5d5c4349b8675be33339fe558964cc38a0efb0e Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Fri, 17 Jun 2016 14:57:58 +0100 Subject: [PATCH 057/137] feature(repository): add listPullRequestFiles (#353) --- lib/Repository.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index e2277780..1fcd05bc 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -108,6 +108,17 @@ class Repository extends Requestable { return this._request('GET', `/repos/${this.__fullname}/pulls/${number}`, null, cb); } + /** + * List the files of a specific pull request + * @see https://developer.github.com/v3/pulls/#list-pull-requests-files + * @param {number|string} number - the PR you wish to fetch + * @param {Requestable.callback} [cb] - will receive the list of files from the API + * @return {Promise} - the promise for the http request + */ + listPullRequestFiles(number, cb) { + return this._request('GET', `/repos/${this.__fullname}/pulls/${number}/files`, null, cb); + } + /** * Compare two branches/commits/repositories * @see https://developer.github.com/v3/repos/commits/#compare-two-commits From 0198ac0866a8ca68d59bf91177b9563ee1f47e39 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Fri, 17 Jun 2016 14:59:59 +0100 Subject: [PATCH 058/137] feature(repository): add updatePullRequst --- lib/Repository.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 1fcd05bc..74fc3645 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -483,6 +483,18 @@ class Repository extends Requestable { return this._request('POST', `/repos/${this.__fullname}/pulls`, options, cb); } + /** + * Update a pull request + * @see https://developer.github.com/v3/pulls/#update-a-pull-request + * @param {number|string} number - the number of the pull request to update + * @param {Object} options - the pull request description + * @param {Requestable.callback} [cb] - will receive the pull request information + * @return {Promise} - the promise for the http request + */ + updatePullRequst(number, options, cb) { + return this._request('PATCH', `/repos/${this.__fullname}/pulls/${number}`, options, cb); + } + /** * List the hooks for the repository * @see https://developer.github.com/v3/repos/hooks/#list-hooks From ac7509653fea51ecb0de9258fe1072f072ee86a7 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Fri, 17 Jun 2016 15:02:05 +0100 Subject: [PATCH 059/137] feature(repository): add mergePullRequest Closes #278, closes #281 --- lib/Repository.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 74fc3645..de77ae48 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -722,6 +722,18 @@ class Repository extends Requestable { deleteRelease(id, cb) { return this._request('DELETE', `/repos/${this.__fullname}/releases/${id}`, null, cb); } + + /** + * Merge a pull request + * @see https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button + * @param {number|string} number - the number of the pull request to merge + * @param {Object} options - the merge options for the pull request + * @param {Requestable.callback} [cb] - will receive the merge information if the operation is successful + * @return {Promise} - the promise for the http request + */ + mergePullRequest(number, options, cb) { + return this._request('PUT', `/repos/${this.__fullname}/pulls/${number}/merge`, options, cb); + } } module.exports = Repository; From f72397d937532c9042ba35a9019ed71449512079 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 17 Jun 2016 09:41:44 -0500 Subject: [PATCH 060/137] chore: update package.json and changelog [ci skip] --- CHANGELOG.md | 7 +++++++ package.json | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4684efb9..925b11c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 2.3.0 - 2016/06/17 +### Features +* add `Repository.mergePullRequest` +* add `Repository.updatePullRequest` +* add `Repository.listPullRequestFiles` +* add `Repository.getReadme` + ## 2.2.0 - 2016/05/27 ### Features * add `Issue.listIssueEvents` diff --git a/package.json b/package.json index f6626629..710c69ae 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,6 @@ "github", "api" ], - "gitHead": "aa8aa3c8cd5ce5240373d4fd1d06a7ab4af41a36", "bugs": { "url": "https://github.com/michael/github/issues" } From 30f9e765149d410e76d47741d372a9e20ee8cf07 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Fri, 17 Jun 2016 09:42:29 -0500 Subject: [PATCH 061/137] 2.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 710c69ae..6f15d8f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "2.2.0", + "version": "2.3.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From e264b01bcdf4066adb18b622ffd8a194f1dacfdc Mon Sep 17 00:00:00 2001 From: David Cook Date: Wed, 22 Jun 2016 11:07:19 -0500 Subject: [PATCH 062/137] refactor(requestable): fix error handling to allow for either an axios response or an Error * Add request/response fixture data for rate limit * Add tests for exhausted rate limit * Add status code and text to request error messages * Check created milestone ID before other tests * Fix ResponseError handling * Improve successCallback error handling * Add fixture data to replace live search API --- lib/Requestable.js | 14 +- package.json | 1 + test/error.spec.js | 83 + test/fixtures/record.js | 34 + test/fixtures/repos-ratelimit-exhausted.js | 27 + test/fixtures/repos-ratelimit-ok.js | 31 + test/fixtures/search.json | 53591 +++++++++++++++++++ test/helpers/callbacks.js | 2 +- test/issue.spec.js | 2 + test/search.spec.js | 7 + 10 files changed, 53787 insertions(+), 5 deletions(-) create mode 100644 test/error.spec.js create mode 100644 test/fixtures/record.js create mode 100644 test/fixtures/repos-ratelimit-exhausted.js create mode 100644 test/fixtures/repos-ratelimit-ok.js create mode 100644 test/fixtures/search.json diff --git a/lib/Requestable.js b/lib/Requestable.js index fa26d9d6..95c23bbd 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -276,10 +276,16 @@ function getNextPage(linksHeader = '') { } function callbackErrorOrThrow(cb, path) { - return function handler(response) { - let message = `error making request ${response.config.method} ${response.config.url}`; - let error = new ResponseError(message, path, response); - log(`${message} ${JSON.stringify(response.data)}`); + return function handler(object) { + let error; + if (object.hasOwnProperty('config')) { + const {status, statusText, config: {method, url}} = object; + let message = (`${status} error making request ${method} ${url}: "${statusText}"`); + error = new ResponseError(message, path, object); + log(`${message} ${JSON.stringify(object.data)}`); + } else { + error = object; + } if (cb) { log('going to error callback'); cb(error); diff --git a/package.json b/package.json index 6f15d8f6..15d451a0 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "minami": "^1.1.1", "mocha": "^2.3.4", "must": "^0.13.1", + "nock": "^8.0.0", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0" }, diff --git a/test/error.spec.js b/test/error.spec.js new file mode 100644 index 00000000..9c9f23e5 --- /dev/null +++ b/test/error.spec.js @@ -0,0 +1,83 @@ +import assert from 'assert'; +import expect from 'must'; +import nock from 'nock'; + +import Github from '../lib/GitHub'; +import testUser from './fixtures/user.json'; +import {assertSuccessful, assertFailure} from './helpers/callbacks'; +import fixtureExhausted from './fixtures/repos-ratelimit-exhausted.js'; +import fixtureOk from './fixtures/repos-ratelimit-ok.js'; + +describe('Rate limit error', function() { + let github; + let user; + let scope; + + before(function() { + github = new Github(); + user = github.getUser(testUser.USERNAME); + }); + + beforeEach(function() { + scope = fixtureExhausted(); + }); + + it('should reject promise with 403 error', function() { + return user.listRepos().then(function() { + assert.fail(undefined, undefined, 'Promise was resolved instead of rejected'); + }, function(error) { + expect(error).to.be.an.error(); + expect(error).to.have.own('response'); + expect(error.response).to.have.own('status'); + expect(error.response.status).to.be(403); + }); + }); + + it('should call callback', function(done) { + user.listRepos(assertFailure(done, function(error) { + expect(error).to.be.an.error(); + expect(error).to.have.own('response'); + expect(error.response).to.have.own('status'); + expect(error.response.status).to.be(403); + done(); + })); + }); + + afterEach(function() { + scope.done(); + nock.cleanAll(); + }); +}); + +describe('Rate limit OK', function() { + let github; + let user; + let scope; + + before(function() { + github = new Github(); + user = github.getUser(testUser.USERNAME); + }); + + beforeEach(function() { + scope = fixtureOk(); + }); + + it('should resolve promise', function() { + return expect(user.listRepos()).to.resolve.to.object(); + }); + + it('should call callback with array of results', function(done) { + user.listRepos(assertSuccessful(done, function(error, result) { + expect(error).is.not.an.error(); + expect(error).is.not.truthy(); + expect(result).is.array(); + done(); + })); + }); + + afterEach(function() { + scope.done(); + nock.cleanAll(); + }); +}); diff --git a/test/fixtures/record.js b/test/fixtures/record.js new file mode 100644 index 00000000..f17e446e --- /dev/null +++ b/test/fixtures/record.js @@ -0,0 +1,34 @@ +import fs from 'fs'; +import nock from 'nock'; +import path from 'path'; +import GitHub from '../../lib/GitHub'; +import testUser from './user.json'; + +const gh = new GitHub(); + +let fileName; +gh.getRateLimit().getRateLimit() + .then((resp) => { + if (resp.data.rate.remaining === 0) { + fileName = 'repos-ratelimit-exhausted.js'; + } else { + fileName = 'repos-ratelimit-ok.js'; + } + nock.recorder.rec({ + dont_print: true + }); + gh.getUser(testUser.USERNAME).listRepos(); + setTimeout(() => { + const fixtures = nock.recorder.play(); + const filePath = path.join(__dirname, fileName); + const text = ('/* eslint-disable */\n' + + 'import nock from \'nock\';\n' + + 'export default function fixture() {\n' + + ' let scope;\n' + + ' scope = ' + fixtures.join('\nscope = ').trim().replace(/\n/g, '\n ') + '\n' + + ' return scope;\n' + + '}\n'); + fs.writeFileSync(filePath, text); + console.log('Wrote fixture data to', fileName); + }, 10000); + }).catch(console.error); diff --git a/test/fixtures/repos-ratelimit-exhausted.js b/test/fixtures/repos-ratelimit-exhausted.js new file mode 100644 index 00000000..151277f7 --- /dev/null +++ b/test/fixtures/repos-ratelimit-exhausted.js @@ -0,0 +1,27 @@ +/* eslint-disable */ +import nock from 'nock'; +export default function fixture() { + let scope; + scope = nock('https://api.github.com:443', {"encodedQueryParams":true}) + .get('/users/mikedeboertest/repos') + .query({"type":"all","sort":"updated","per_page":"100"}) + .reply(403, {"message":"API rate limit exceeded for 174.20.8.171. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://developer.github.com/v3/#rate-limiting"}, { server: 'GitHub.com', + date: 'Sat, 18 Jun 2016 11:50:00 GMT', + 'content-type': 'application/json; charset=utf-8', + 'content-length': '246', + connection: 'close', + status: '403 Forbidden', + 'x-ratelimit-limit': '60', + 'x-ratelimit-remaining': '0', + 'x-ratelimit-reset': '1466253529', + 'x-github-media-type': 'github.v3; format=json', + 'access-control-expose-headers': 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval', + 'access-control-allow-origin': '*', + 'content-security-policy': 'default-src \'none\'', + 'strict-transport-security': 'max-age=31536000; includeSubdomains; preload', + 'x-content-type-options': 'nosniff', + 'x-frame-options': 'deny', + 'x-xss-protection': '1; mode=block', + 'x-github-request-id': 'AE1408AB:EA59:14F2183:57653568' }); + return scope; +} diff --git a/test/fixtures/repos-ratelimit-ok.js b/test/fixtures/repos-ratelimit-ok.js new file mode 100644 index 00000000..f22b7298 --- /dev/null +++ b/test/fixtures/repos-ratelimit-ok.js @@ -0,0 +1,31 @@ +/* eslint-disable */ +import nock from 'nock'; +export default function fixture() { + let scope; + scope = nock('https://api.github.com:443', {"encodedQueryParams":true}) + .get('/users/mikedeboertest/repos') + .query({"type":"all","sort":"updated","per_page":"100"}) + .reply(200, [{"id":61223052,"name":"1466007969664-48479","full_name":"mikedeboertest/1466007969664-48479","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1466007969664-48479","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479","forks_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1466007969664-48479/deployments","created_at":"2016-06-15T16:26:32Z","updated_at":"2016-06-15T16:26:32Z","pushed_at":"2016-06-15T16:26:34Z","git_url":"git://github.com/mikedeboertest/1466007969664-48479.git","ssh_url":"git@github.com:mikedeboertest/1466007969664-48479.git","clone_url":"https://github.com/mikedeboertest/1466007969664-48479.git","svn_url":"https://github.com/mikedeboertest/1466007969664-48479","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":61223047,"name":"1466007968216-77827","full_name":"mikedeboertest/1466007968216-77827","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1466007968216-77827","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827","forks_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1466007968216-77827/deployments","created_at":"2016-06-15T16:26:29Z","updated_at":"2016-06-15T16:26:29Z","pushed_at":"2016-06-15T16:26:34Z","git_url":"git://github.com/mikedeboertest/1466007968216-77827.git","ssh_url":"git@github.com:mikedeboertest/1466007968216-77827.git","clone_url":"https://github.com/mikedeboertest/1466007968216-77827.git","svn_url":"https://github.com/mikedeboertest/1466007968216-77827","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":61223043,"name":"1466007967200-21287","full_name":"mikedeboertest/1466007967200-21287","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1466007967200-21287","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287","forks_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1466007967200-21287/deployments","created_at":"2016-06-15T16:26:28Z","updated_at":"2016-06-15T16:26:28Z","pushed_at":"2016-06-15T16:26:34Z","git_url":"git://github.com/mikedeboertest/1466007967200-21287.git","ssh_url":"git@github.com:mikedeboertest/1466007967200-21287.git","clone_url":"https://github.com/mikedeboertest/1466007967200-21287.git","svn_url":"https://github.com/mikedeboertest/1466007967200-21287","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59675273,"name":"1464190257040-1677","full_name":"mikedeboertest/1464190257040-1677","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1464190257040-1677","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677","forks_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1464190257040-1677/deployments","created_at":"2016-05-25T15:31:53Z","updated_at":"2016-05-25T15:33:10Z","pushed_at":"2016-05-25T15:34:09Z","git_url":"git://github.com/mikedeboertest/1464190257040-1677.git","ssh_url":"git@github.com:mikedeboertest/1464190257040-1677.git","clone_url":"https://github.com/mikedeboertest/1464190257040-1677.git","svn_url":"https://github.com/mikedeboertest/1464190257040-1677","homepage":null,"size":4,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59491156,"name":"1464014781403-67984","full_name":"mikedeboertest/1464014781403-67984","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1464014781403-67984","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984","forks_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1464014781403-67984/deployments","created_at":"2016-05-23T14:47:24Z","updated_at":"2016-05-23T14:48:41Z","pushed_at":"2016-05-23T14:47:25Z","git_url":"git://github.com/mikedeboertest/1464014781403-67984.git","ssh_url":"git@github.com:mikedeboertest/1464014781403-67984.git","clone_url":"https://github.com/mikedeboertest/1464014781403-67984.git","svn_url":"https://github.com/mikedeboertest/1464014781403-67984","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59488747,"name":"1464013020573-30609","full_name":"mikedeboertest/1464013020573-30609","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1464013020573-30609","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609","forks_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1464013020573-30609/deployments","created_at":"2016-05-23T14:17:26Z","updated_at":"2016-05-23T14:17:26Z","pushed_at":"2016-05-23T14:17:27Z","git_url":"git://github.com/mikedeboertest/1464013020573-30609.git","ssh_url":"git@github.com:mikedeboertest/1464013020573-30609.git","clone_url":"https://github.com/mikedeboertest/1464013020573-30609.git","svn_url":"https://github.com/mikedeboertest/1464013020573-30609","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59302174,"name":"1463755268475-95976","full_name":"mikedeboertest/1463755268475-95976","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463755268475-95976","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976","forks_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463755268475-95976/deployments","created_at":"2016-05-20T14:41:49Z","updated_at":"2016-05-20T14:41:49Z","pushed_at":"2016-05-20T14:41:58Z","git_url":"git://github.com/mikedeboertest/1463755268475-95976.git","ssh_url":"git@github.com:mikedeboertest/1463755268475-95976.git","clone_url":"https://github.com/mikedeboertest/1463755268475-95976.git","svn_url":"https://github.com/mikedeboertest/1463755268475-95976","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59230219,"name":"1463681113858-76250","full_name":"mikedeboertest/1463681113858-76250","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463681113858-76250","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250","forks_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463681113858-76250/deployments","created_at":"2016-05-19T18:05:14Z","updated_at":"2016-05-19T18:05:14Z","pushed_at":"2016-05-19T18:05:19Z","git_url":"git://github.com/mikedeboertest/1463681113858-76250.git","ssh_url":"git@github.com:mikedeboertest/1463681113858-76250.git","clone_url":"https://github.com/mikedeboertest/1463681113858-76250.git","svn_url":"https://github.com/mikedeboertest/1463681113858-76250","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59230157,"name":"1463681047051-11244","full_name":"mikedeboertest/1463681047051-11244","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463681047051-11244","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244","forks_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463681047051-11244/deployments","created_at":"2016-05-19T18:04:07Z","updated_at":"2016-05-19T18:04:42Z","pushed_at":"2016-05-19T18:04:44Z","git_url":"git://github.com/mikedeboertest/1463681047051-11244.git","ssh_url":"git@github.com:mikedeboertest/1463681047051-11244.git","clone_url":"https://github.com/mikedeboertest/1463681047051-11244.git","svn_url":"https://github.com/mikedeboertest/1463681047051-11244","homepage":null,"size":6,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":59229755,"name":"1463680679643-22824","full_name":"mikedeboertest/1463680679643-22824","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463680679643-22824","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824","forks_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463680679643-22824/deployments","created_at":"2016-05-19T17:58:00Z","updated_at":"2016-05-19T17:58:00Z","pushed_at":"2016-05-19T17:58:08Z","git_url":"git://github.com/mikedeboertest/1463680679643-22824.git","ssh_url":"git@github.com:mikedeboertest/1463680679643-22824.git","clone_url":"https://github.com/mikedeboertest/1463680679643-22824.git","svn_url":"https://github.com/mikedeboertest/1463680679643-22824","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":59229667,"name":"1463680609045-98875","full_name":"mikedeboertest/1463680609045-98875","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463680609045-98875","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875","forks_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463680609045-98875/deployments","created_at":"2016-05-19T17:56:49Z","updated_at":"2016-05-19T17:57:35Z","pushed_at":"2016-05-19T17:57:37Z","git_url":"git://github.com/mikedeboertest/1463680609045-98875.git","ssh_url":"git@github.com:mikedeboertest/1463680609045-98875.git","clone_url":"https://github.com/mikedeboertest/1463680609045-98875.git","svn_url":"https://github.com/mikedeboertest/1463680609045-98875","homepage":null,"size":6,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":58823781,"name":"1463250529752-2838","full_name":"mikedeboertest/1463250529752-2838","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463250529752-2838","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838","forks_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463250529752-2838/deployments","created_at":"2016-05-14T18:29:24Z","updated_at":"2016-05-14T18:29:59Z","pushed_at":"2016-05-14T18:29:56Z","git_url":"git://github.com/mikedeboertest/1463250529752-2838.git","ssh_url":"git@github.com:mikedeboertest/1463250529752-2838.git","clone_url":"https://github.com/mikedeboertest/1463250529752-2838.git","svn_url":"https://github.com/mikedeboertest/1463250529752-2838","homepage":null,"size":6,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":58823599,"name":"1463250340268-79337","full_name":"mikedeboertest/1463250340268-79337","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463250340268-79337","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337","forks_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463250340268-79337/deployments","created_at":"2016-05-14T18:26:15Z","updated_at":"2016-05-14T18:26:15Z","pushed_at":"2016-05-14T18:26:18Z","git_url":"git://github.com/mikedeboertest/1463250340268-79337.git","ssh_url":"git@github.com:mikedeboertest/1463250340268-79337.git","clone_url":"https://github.com/mikedeboertest/1463250340268-79337.git","svn_url":"https://github.com/mikedeboertest/1463250340268-79337","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58823433,"name":"1463250256546-33252","full_name":"mikedeboertest/1463250256546-33252","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463250256546-33252","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252","forks_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463250256546-33252/deployments","created_at":"2016-05-14T18:24:52Z","updated_at":"2016-05-14T18:24:52Z","pushed_at":"2016-05-14T18:25:19Z","git_url":"git://github.com/mikedeboertest/1463250256546-33252.git","ssh_url":"git@github.com:mikedeboertest/1463250256546-33252.git","clone_url":"https://github.com/mikedeboertest/1463250256546-33252.git","svn_url":"https://github.com/mikedeboertest/1463250256546-33252","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":58823363,"name":"1463250134207-67700","full_name":"mikedeboertest/1463250134207-67700","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463250134207-67700","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700","forks_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463250134207-67700/deployments","created_at":"2016-05-14T18:22:52Z","updated_at":"2016-05-14T18:22:52Z","pushed_at":"2016-05-14T18:22:56Z","git_url":"git://github.com/mikedeboertest/1463250134207-67700.git","ssh_url":"git@github.com:mikedeboertest/1463250134207-67700.git","clone_url":"https://github.com/mikedeboertest/1463250134207-67700.git","svn_url":"https://github.com/mikedeboertest/1463250134207-67700","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58823282,"name":"1463250004216-11319","full_name":"mikedeboertest/1463250004216-11319","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463250004216-11319","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319","forks_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463250004216-11319/deployments","created_at":"2016-05-14T18:20:40Z","updated_at":"2016-05-14T18:20:40Z","pushed_at":"2016-05-14T18:20:43Z","git_url":"git://github.com/mikedeboertest/1463250004216-11319.git","ssh_url":"git@github.com:mikedeboertest/1463250004216-11319.git","clone_url":"https://github.com/mikedeboertest/1463250004216-11319.git","svn_url":"https://github.com/mikedeboertest/1463250004216-11319","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58821871,"name":"1463248083993-41353","full_name":"mikedeboertest/1463248083993-41353","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463248083993-41353","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353","forks_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463248083993-41353/deployments","created_at":"2016-05-14T17:48:39Z","updated_at":"2016-05-14T17:48:39Z","pushed_at":"2016-05-14T17:48:43Z","git_url":"git://github.com/mikedeboertest/1463248083993-41353.git","ssh_url":"git@github.com:mikedeboertest/1463248083993-41353.git","clone_url":"https://github.com/mikedeboertest/1463248083993-41353.git","svn_url":"https://github.com/mikedeboertest/1463248083993-41353","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58821783,"name":"1463247976655-95370","full_name":"mikedeboertest/1463247976655-95370","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463247976655-95370","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370","forks_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463247976655-95370/deployments","created_at":"2016-05-14T17:46:53Z","updated_at":"2016-05-14T17:46:53Z","pushed_at":"2016-05-14T17:46:57Z","git_url":"git://github.com/mikedeboertest/1463247976655-95370.git","ssh_url":"git@github.com:mikedeboertest/1463247976655-95370.git","clone_url":"https://github.com/mikedeboertest/1463247976655-95370.git","svn_url":"https://github.com/mikedeboertest/1463247976655-95370","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58821247,"name":"1463247323044-36209","full_name":"mikedeboertest/1463247323044-36209","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463247323044-36209","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209","forks_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463247323044-36209/deployments","created_at":"2016-05-14T17:35:56Z","updated_at":"2016-05-14T17:36:28Z","pushed_at":"2016-05-14T17:36:31Z","git_url":"git://github.com/mikedeboertest/1463247323044-36209.git","ssh_url":"git@github.com:mikedeboertest/1463247323044-36209.git","clone_url":"https://github.com/mikedeboertest/1463247323044-36209.git","svn_url":"https://github.com/mikedeboertest/1463247323044-36209","homepage":null,"size":6,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":58820899,"name":"1463246865022-49863","full_name":"mikedeboertest/1463246865022-49863","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463246865022-49863","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863","forks_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463246865022-49863/deployments","created_at":"2016-05-14T17:28:19Z","updated_at":"2016-05-14T17:28:19Z","pushed_at":"2016-05-14T17:28:26Z","git_url":"git://github.com/mikedeboertest/1463246865022-49863.git","ssh_url":"git@github.com:mikedeboertest/1463246865022-49863.git","clone_url":"https://github.com/mikedeboertest/1463246865022-49863.git","svn_url":"https://github.com/mikedeboertest/1463246865022-49863","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58802047,"name":"1463221398969-91943","full_name":"mikedeboertest/1463221398969-91943","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463221398969-91943","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943","forks_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463221398969-91943/deployments","created_at":"2016-05-14T10:23:56Z","updated_at":"2016-05-14T10:23:56Z","pushed_at":"2016-05-14T10:24:02Z","git_url":"git://github.com/mikedeboertest/1463221398969-91943.git","ssh_url":"git@github.com:mikedeboertest/1463221398969-91943.git","clone_url":"https://github.com/mikedeboertest/1463221398969-91943.git","svn_url":"https://github.com/mikedeboertest/1463221398969-91943","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58801785,"name":"1463220955896-74691","full_name":"mikedeboertest/1463220955896-74691","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463220955896-74691","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691","forks_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463220955896-74691/deployments","created_at":"2016-05-14T10:16:38Z","updated_at":"2016-05-14T10:16:38Z","pushed_at":"2016-05-14T10:16:43Z","git_url":"git://github.com/mikedeboertest/1463220955896-74691.git","ssh_url":"git@github.com:mikedeboertest/1463220955896-74691.git","clone_url":"https://github.com/mikedeboertest/1463220955896-74691.git","svn_url":"https://github.com/mikedeboertest/1463220955896-74691","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58764717,"name":"1463165299919-53197","full_name":"mikedeboertest/1463165299919-53197","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1463165299919-53197","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197","forks_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1463165299919-53197/deployments","created_at":"2016-05-13T18:48:41Z","updated_at":"2016-05-13T18:48:41Z","pushed_at":"2016-05-13T18:48:48Z","git_url":"git://github.com/mikedeboertest/1463165299919-53197.git","ssh_url":"git@github.com:mikedeboertest/1463165299919-53197.git","clone_url":"https://github.com/mikedeboertest/1463165299919-53197.git","svn_url":"https://github.com/mikedeboertest/1463165299919-53197","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":58551013,"name":"1462976008238-82297","full_name":"mikedeboertest/1462976008238-82297","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1462976008238-82297","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297","forks_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1462976008238-82297/deployments","created_at":"2016-05-11T14:13:52Z","updated_at":"2016-05-11T14:13:52Z","pushed_at":"2016-05-11T14:14:09Z","git_url":"git://github.com/mikedeboertest/1462976008238-82297.git","ssh_url":"git@github.com:mikedeboertest/1462976008238-82297.git","clone_url":"https://github.com/mikedeboertest/1462976008238-82297.git","svn_url":"https://github.com/mikedeboertest/1462976008238-82297","homepage":null,"size":1,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":58037771,"name":"23054","full_name":"mikedeboertest/23054","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/23054","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/23054","forks_url":"https://api.github.com/repos/mikedeboertest/23054/forks","keys_url":"https://api.github.com/repos/mikedeboertest/23054/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/23054/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/23054/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/23054/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/23054/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/23054/events","assignees_url":"https://api.github.com/repos/mikedeboertest/23054/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/23054/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/23054/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/23054/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/23054/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/23054/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/23054/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/23054/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/23054/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/23054/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/23054/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/23054/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/23054/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/23054/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/23054/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/23054/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/23054/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/23054/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/23054/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/23054/merges","archive_url":"https://api.github.com/repos/mikedeboertest/23054/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/23054/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/23054/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/23054/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/23054/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/23054/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/23054/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/23054/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/23054/deployments","created_at":"2016-05-04T08:58:56Z","updated_at":"2016-05-04T08:58:56Z","pushed_at":"2016-05-04T08:58:57Z","git_url":"git://github.com/mikedeboertest/23054.git","ssh_url":"git@github.com:mikedeboertest/23054.git","clone_url":"https://github.com/mikedeboertest/23054.git","svn_url":"https://github.com/mikedeboertest/23054","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":57249771,"name":"1461792161253-59167","full_name":"mikedeboertest/1461792161253-59167","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1461792161253-59167","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167","forks_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1461792161253-59167/deployments","created_at":"2016-04-27T21:22:57Z","updated_at":"2016-04-27T21:22:57Z","pushed_at":"2016-04-27T21:23:06Z","git_url":"git://github.com/mikedeboertest/1461792161253-59167.git","ssh_url":"git@github.com:mikedeboertest/1461792161253-59167.git","clone_url":"https://github.com/mikedeboertest/1461792161253-59167.git","svn_url":"https://github.com/mikedeboertest/1461792161253-59167","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"},{"id":57248531,"name":"1461791596897-87484","full_name":"mikedeboertest/1461791596897-87484","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/1461791596897-87484","description":null,"fork":false,"url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484","forks_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/forks","keys_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/events","assignees_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/merges","archive_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/1461791596897-87484/deployments","created_at":"2016-04-27T21:13:32Z","updated_at":"2016-04-27T21:13:32Z","pushed_at":"2016-04-27T21:13:49Z","git_url":"git://github.com/mikedeboertest/1461791596897-87484.git","ssh_url":"git@github.com:mikedeboertest/1461791596897-87484.git","clone_url":"https://github.com/mikedeboertest/1461791596897-87484.git","svn_url":"https://github.com/mikedeboertest/1461791596897-87484","homepage":null,"size":2,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"},{"id":57236022,"name":"TestRepo","full_name":"mikedeboertest/TestRepo","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/TestRepo","description":"Used for automated testing","fork":false,"url":"https://api.github.com/repos/mikedeboertest/TestRepo","forks_url":"https://api.github.com/repos/mikedeboertest/TestRepo/forks","keys_url":"https://api.github.com/repos/mikedeboertest/TestRepo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/TestRepo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/TestRepo/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/TestRepo/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/TestRepo/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/TestRepo/events","assignees_url":"https://api.github.com/repos/mikedeboertest/TestRepo/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/TestRepo/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/TestRepo/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/TestRepo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/TestRepo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/TestRepo/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/TestRepo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/TestRepo/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/TestRepo/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/TestRepo/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/TestRepo/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/TestRepo/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/TestRepo/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/TestRepo/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/TestRepo/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/TestRepo/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/TestRepo/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/TestRepo/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/TestRepo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/TestRepo/merges","archive_url":"https://api.github.com/repos/mikedeboertest/TestRepo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/TestRepo/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/TestRepo/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/TestRepo/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/TestRepo/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/TestRepo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/TestRepo/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/TestRepo/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/TestRepo/deployments","created_at":"2016-04-27T18:20:55Z","updated_at":"2016-04-27T18:20:55Z","pushed_at":"2016-04-27T18:20:56Z","git_url":"git://github.com/mikedeboertest/TestRepo.git","ssh_url":"git@github.com:mikedeboertest/TestRepo.git","clone_url":"https://github.com/mikedeboertest/TestRepo.git","svn_url":"https://github.com/mikedeboertest/TestRepo","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":14,"forks":0,"open_issues":14,"watchers":0,"default_branch":"master"},{"id":57235903,"name":"github","full_name":"mikedeboertest/github","owner":{"login":"mikedeboertest","id":2493292,"avatar_url":"https://avatars.githubusercontent.com/u/2493292?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedeboertest","html_url":"https://github.com/mikedeboertest","followers_url":"https://api.github.com/users/mikedeboertest/followers","following_url":"https://api.github.com/users/mikedeboertest/following{/other_user}","gists_url":"https://api.github.com/users/mikedeboertest/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedeboertest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedeboertest/subscriptions","organizations_url":"https://api.github.com/users/mikedeboertest/orgs","repos_url":"https://api.github.com/users/mikedeboertest/repos","events_url":"https://api.github.com/users/mikedeboertest/events{/privacy}","received_events_url":"https://api.github.com/users/mikedeboertest/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikedeboertest/github","description":"A higher-level wrapper around the Github API. Intended for the browser.","fork":true,"url":"https://api.github.com/repos/mikedeboertest/github","forks_url":"https://api.github.com/repos/mikedeboertest/github/forks","keys_url":"https://api.github.com/repos/mikedeboertest/github/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikedeboertest/github/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikedeboertest/github/teams","hooks_url":"https://api.github.com/repos/mikedeboertest/github/hooks","issue_events_url":"https://api.github.com/repos/mikedeboertest/github/issues/events{/number}","events_url":"https://api.github.com/repos/mikedeboertest/github/events","assignees_url":"https://api.github.com/repos/mikedeboertest/github/assignees{/user}","branches_url":"https://api.github.com/repos/mikedeboertest/github/branches{/branch}","tags_url":"https://api.github.com/repos/mikedeboertest/github/tags","blobs_url":"https://api.github.com/repos/mikedeboertest/github/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikedeboertest/github/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikedeboertest/github/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikedeboertest/github/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikedeboertest/github/statuses/{sha}","languages_url":"https://api.github.com/repos/mikedeboertest/github/languages","stargazers_url":"https://api.github.com/repos/mikedeboertest/github/stargazers","contributors_url":"https://api.github.com/repos/mikedeboertest/github/contributors","subscribers_url":"https://api.github.com/repos/mikedeboertest/github/subscribers","subscription_url":"https://api.github.com/repos/mikedeboertest/github/subscription","commits_url":"https://api.github.com/repos/mikedeboertest/github/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikedeboertest/github/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikedeboertest/github/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikedeboertest/github/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikedeboertest/github/contents/{+path}","compare_url":"https://api.github.com/repos/mikedeboertest/github/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikedeboertest/github/merges","archive_url":"https://api.github.com/repos/mikedeboertest/github/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikedeboertest/github/downloads","issues_url":"https://api.github.com/repos/mikedeboertest/github/issues{/number}","pulls_url":"https://api.github.com/repos/mikedeboertest/github/pulls{/number}","milestones_url":"https://api.github.com/repos/mikedeboertest/github/milestones{/number}","notifications_url":"https://api.github.com/repos/mikedeboertest/github/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikedeboertest/github/labels{/name}","releases_url":"https://api.github.com/repos/mikedeboertest/github/releases{/id}","deployments_url":"https://api.github.com/repos/mikedeboertest/github/deployments","created_at":"2016-04-27T18:19:02Z","updated_at":"2016-04-27T18:19:03Z","pushed_at":"2016-04-27T18:15:51Z","git_url":"git://github.com/mikedeboertest/github.git","ssh_url":"git@github.com:mikedeboertest/github.git","clone_url":"https://github.com/mikedeboertest/github.git","svn_url":"https://github.com/mikedeboertest/github","homepage":"","size":1734,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}], { server: 'GitHub.com', + date: 'Sat, 18 Jun 2016 11:38:49 GMT', + 'content-type': 'application/json; charset=utf-8', + 'content-length': '153901', + connection: 'close', + status: '200 OK', + 'x-ratelimit-limit': '60', + 'x-ratelimit-remaining': '59', + 'x-ratelimit-reset': '1466253529', + 'cache-control': 'public, max-age=60, s-maxage=60', + vary: 'Accept, Accept-Encoding', + etag: '"1901b5d7790ae51d7c5ce6d4b98ac7bc"', + 'x-github-media-type': 'github.v3; format=json', + 'access-control-expose-headers': 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval', + 'access-control-allow-origin': '*', + 'content-security-policy': 'default-src \'none\'', + 'strict-transport-security': 'max-age=31536000; includeSubdomains; preload', + 'x-content-type-options': 'nosniff', + 'x-frame-options': 'deny', + 'x-xss-protection': '1; mode=block', + 'x-served-by': 'a51acaae89a7607fd7ee967627be18e4', + 'x-github-request-id': 'AE1408AB:13AFE:4000839:576532C8' }); + return scope; +} diff --git a/test/fixtures/search.json b/test/fixtures/search.json new file mode 100644 index 00000000..e87ad025 --- /dev/null +++ b/test/fixtures/search.json @@ -0,0 +1,53591 @@ +[ + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/repositories?q=tetris+language:assembly&sort=stars&order=desc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 473, + "incomplete_results": false, + "items": [ + { + "id": 8688362, + "name": "Nand2Tetris", + "full_name": "havivha/Nand2Tetris", + "owner": { + "login": "havivha", + "id": 2629901, + "avatar_url": "https://avatars.githubusercontent.com/u/2629901?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/havivha", + "html_url": "https://github.com/havivha", + "followers_url": "https://api.github.com/users/havivha/followers", + "following_url": "https://api.github.com/users/havivha/following{/other_user}", + "gists_url": "https://api.github.com/users/havivha/gists{/gist_id}", + "starred_url": "https://api.github.com/users/havivha/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/havivha/subscriptions", + "organizations_url": "https://api.github.com/users/havivha/orgs", + "repos_url": "https://api.github.com/users/havivha/repos", + "events_url": "https://api.github.com/users/havivha/events{/privacy}", + "received_events_url": "https://api.github.com/users/havivha/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/havivha/Nand2Tetris", + "description": "Computer implementation as described in \"The Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/havivha/Nand2Tetris", + "forks_url": "https://api.github.com/repos/havivha/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/havivha/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/havivha/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/havivha/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/havivha/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/havivha/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/havivha/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/havivha/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/havivha/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/havivha/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/havivha/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/havivha/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/havivha/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/havivha/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/havivha/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/havivha/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/havivha/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/havivha/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/havivha/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/havivha/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/havivha/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/havivha/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/havivha/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/havivha/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/havivha/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/havivha/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/havivha/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/havivha/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/havivha/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/havivha/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/havivha/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/havivha/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/havivha/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/havivha/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/havivha/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/havivha/Nand2Tetris/deployments", + "created_at": "2013-03-10T17:04:20Z", + "updated_at": "2016-06-19T05:26:22Z", + "pushed_at": "2015-06-10T14:38:16Z", + "git_url": "git://github.com/havivha/Nand2Tetris.git", + "ssh_url": "git@github.com:havivha/Nand2Tetris.git", + "clone_url": "https://github.com/havivha/Nand2Tetris.git", + "svn_url": "https://github.com/havivha/Nand2Tetris", + "homepage": null, + "size": 474, + "stargazers_count": 51, + "watchers_count": 51, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 46, + "mirror_url": null, + "open_issues_count": 1, + "forks": 46, + "open_issues": 1, + "watchers": 51, + "default_branch": "master", + "score": 22.6195 + }, + { + "id": 37400358, + "name": "tetrasm", + "full_name": "programble/tetrasm", + "owner": { + "login": "programble", + "id": 166462, + "avatar_url": "https://avatars.githubusercontent.com/u/166462?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/programble", + "html_url": "https://github.com/programble", + "followers_url": "https://api.github.com/users/programble/followers", + "following_url": "https://api.github.com/users/programble/following{/other_user}", + "gists_url": "https://api.github.com/users/programble/gists{/gist_id}", + "starred_url": "https://api.github.com/users/programble/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/programble/subscriptions", + "organizations_url": "https://api.github.com/users/programble/orgs", + "repos_url": "https://api.github.com/users/programble/repos", + "events_url": "https://api.github.com/users/programble/events{/privacy}", + "received_events_url": "https://api.github.com/users/programble/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/programble/tetrasm", + "description": "Tetris for x86 in NASM", + "fork": false, + "url": "https://api.github.com/repos/programble/tetrasm", + "forks_url": "https://api.github.com/repos/programble/tetrasm/forks", + "keys_url": "https://api.github.com/repos/programble/tetrasm/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/programble/tetrasm/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/programble/tetrasm/teams", + "hooks_url": "https://api.github.com/repos/programble/tetrasm/hooks", + "issue_events_url": "https://api.github.com/repos/programble/tetrasm/issues/events{/number}", + "events_url": "https://api.github.com/repos/programble/tetrasm/events", + "assignees_url": "https://api.github.com/repos/programble/tetrasm/assignees{/user}", + "branches_url": "https://api.github.com/repos/programble/tetrasm/branches{/branch}", + "tags_url": "https://api.github.com/repos/programble/tetrasm/tags", + "blobs_url": "https://api.github.com/repos/programble/tetrasm/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/programble/tetrasm/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/programble/tetrasm/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/programble/tetrasm/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/programble/tetrasm/statuses/{sha}", + "languages_url": "https://api.github.com/repos/programble/tetrasm/languages", + "stargazers_url": "https://api.github.com/repos/programble/tetrasm/stargazers", + "contributors_url": "https://api.github.com/repos/programble/tetrasm/contributors", + "subscribers_url": "https://api.github.com/repos/programble/tetrasm/subscribers", + "subscription_url": "https://api.github.com/repos/programble/tetrasm/subscription", + "commits_url": "https://api.github.com/repos/programble/tetrasm/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/programble/tetrasm/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/programble/tetrasm/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/programble/tetrasm/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/programble/tetrasm/contents/{+path}", + "compare_url": "https://api.github.com/repos/programble/tetrasm/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/programble/tetrasm/merges", + "archive_url": "https://api.github.com/repos/programble/tetrasm/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/programble/tetrasm/downloads", + "issues_url": "https://api.github.com/repos/programble/tetrasm/issues{/number}", + "pulls_url": "https://api.github.com/repos/programble/tetrasm/pulls{/number}", + "milestones_url": "https://api.github.com/repos/programble/tetrasm/milestones{/number}", + "notifications_url": "https://api.github.com/repos/programble/tetrasm/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/programble/tetrasm/labels{/name}", + "releases_url": "https://api.github.com/repos/programble/tetrasm/releases{/id}", + "deployments_url": "https://api.github.com/repos/programble/tetrasm/deployments", + "created_at": "2015-06-14T05:26:28Z", + "updated_at": "2016-05-12T00:48:31Z", + "pushed_at": "2015-09-14T18:47:29Z", + "git_url": "git://github.com/programble/tetrasm.git", + "ssh_url": "git@github.com:programble/tetrasm.git", + "clone_url": "https://github.com/programble/tetrasm.git", + "svn_url": "https://github.com/programble/tetrasm", + "homepage": null, + "size": 420, + "stargazers_count": 47, + "watchers_count": 47, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 3, + "mirror_url": null, + "open_issues_count": 1, + "forks": 3, + "open_issues": 1, + "watchers": 47, + "default_branch": "master", + "score": 20.474998 + }, + { + "id": 21095601, + "name": "Tetris-Duel", + "full_name": "Tetris-Duel-Team/Tetris-Duel", + "owner": { + "login": "Tetris-Duel-Team", + "id": 7956696, + "avatar_url": "https://avatars.githubusercontent.com/u/7956696?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Tetris-Duel-Team", + "html_url": "https://github.com/Tetris-Duel-Team", + "followers_url": "https://api.github.com/users/Tetris-Duel-Team/followers", + "following_url": "https://api.github.com/users/Tetris-Duel-Team/following{/other_user}", + "gists_url": "https://api.github.com/users/Tetris-Duel-Team/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Tetris-Duel-Team/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Tetris-Duel-Team/subscriptions", + "organizations_url": "https://api.github.com/users/Tetris-Duel-Team/orgs", + "repos_url": "https://api.github.com/users/Tetris-Duel-Team/repos", + "events_url": "https://api.github.com/users/Tetris-Duel-Team/events{/privacy}", + "received_events_url": "https://api.github.com/users/Tetris-Duel-Team/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Tetris-Duel-Team/Tetris-Duel", + "description": "Multiplayer Tetris for Raspberry Pi (in bare metal assembly)", + "fork": false, + "url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel", + "forks_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/forks", + "keys_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/teams", + "hooks_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/hooks", + "issue_events_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/issues/events{/number}", + "events_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/events", + "assignees_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/assignees{/user}", + "branches_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/branches{/branch}", + "tags_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/tags", + "blobs_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/languages", + "stargazers_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/stargazers", + "contributors_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/contributors", + "subscribers_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/subscribers", + "subscription_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/subscription", + "commits_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/contents/{+path}", + "compare_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/merges", + "archive_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/downloads", + "issues_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/issues{/number}", + "pulls_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/labels{/name}", + "releases_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/releases{/id}", + "deployments_url": "https://api.github.com/repos/Tetris-Duel-Team/Tetris-Duel/deployments", + "created_at": "2014-06-22T14:23:25Z", + "updated_at": "2016-06-02T15:14:04Z", + "pushed_at": "2016-02-05T04:33:56Z", + "git_url": "git://github.com/Tetris-Duel-Team/Tetris-Duel.git", + "ssh_url": "git@github.com:Tetris-Duel-Team/Tetris-Duel.git", + "clone_url": "https://github.com/Tetris-Duel-Team/Tetris-Duel.git", + "svn_url": "https://github.com/Tetris-Duel-Team/Tetris-Duel", + "homepage": "", + "size": 11094, + "stargazers_count": 46, + "watchers_count": 46, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 6, + "mirror_url": null, + "open_issues_count": 0, + "forks": 6, + "open_issues": 0, + "watchers": 46, + "default_branch": "master", + "score": 19.276867 + }, + { + "id": 31056900, + "name": "tetris.c64", + "full_name": "wiebow/tetris.c64", + "owner": { + "login": "wiebow", + "id": 1338966, + "avatar_url": "https://avatars.githubusercontent.com/u/1338966?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/wiebow", + "html_url": "https://github.com/wiebow", + "followers_url": "https://api.github.com/users/wiebow/followers", + "following_url": "https://api.github.com/users/wiebow/following{/other_user}", + "gists_url": "https://api.github.com/users/wiebow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/wiebow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wiebow/subscriptions", + "organizations_url": "https://api.github.com/users/wiebow/orgs", + "repos_url": "https://api.github.com/users/wiebow/repos", + "events_url": "https://api.github.com/users/wiebow/events{/privacy}", + "received_events_url": "https://api.github.com/users/wiebow/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/wiebow/tetris.c64", + "description": "Tetris in 6502 for the Commodore 64", + "fork": false, + "url": "https://api.github.com/repos/wiebow/tetris.c64", + "forks_url": "https://api.github.com/repos/wiebow/tetris.c64/forks", + "keys_url": "https://api.github.com/repos/wiebow/tetris.c64/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/wiebow/tetris.c64/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/wiebow/tetris.c64/teams", + "hooks_url": "https://api.github.com/repos/wiebow/tetris.c64/hooks", + "issue_events_url": "https://api.github.com/repos/wiebow/tetris.c64/issues/events{/number}", + "events_url": "https://api.github.com/repos/wiebow/tetris.c64/events", + "assignees_url": "https://api.github.com/repos/wiebow/tetris.c64/assignees{/user}", + "branches_url": "https://api.github.com/repos/wiebow/tetris.c64/branches{/branch}", + "tags_url": "https://api.github.com/repos/wiebow/tetris.c64/tags", + "blobs_url": "https://api.github.com/repos/wiebow/tetris.c64/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/wiebow/tetris.c64/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/wiebow/tetris.c64/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/wiebow/tetris.c64/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/wiebow/tetris.c64/statuses/{sha}", + "languages_url": "https://api.github.com/repos/wiebow/tetris.c64/languages", + "stargazers_url": "https://api.github.com/repos/wiebow/tetris.c64/stargazers", + "contributors_url": "https://api.github.com/repos/wiebow/tetris.c64/contributors", + "subscribers_url": "https://api.github.com/repos/wiebow/tetris.c64/subscribers", + "subscription_url": "https://api.github.com/repos/wiebow/tetris.c64/subscription", + "commits_url": "https://api.github.com/repos/wiebow/tetris.c64/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/wiebow/tetris.c64/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/wiebow/tetris.c64/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/wiebow/tetris.c64/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/wiebow/tetris.c64/contents/{+path}", + "compare_url": "https://api.github.com/repos/wiebow/tetris.c64/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/wiebow/tetris.c64/merges", + "archive_url": "https://api.github.com/repos/wiebow/tetris.c64/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/wiebow/tetris.c64/downloads", + "issues_url": "https://api.github.com/repos/wiebow/tetris.c64/issues{/number}", + "pulls_url": "https://api.github.com/repos/wiebow/tetris.c64/pulls{/number}", + "milestones_url": "https://api.github.com/repos/wiebow/tetris.c64/milestones{/number}", + "notifications_url": "https://api.github.com/repos/wiebow/tetris.c64/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/wiebow/tetris.c64/labels{/name}", + "releases_url": "https://api.github.com/repos/wiebow/tetris.c64/releases{/id}", + "deployments_url": "https://api.github.com/repos/wiebow/tetris.c64/deployments", + "created_at": "2015-02-20T08:46:43Z", + "updated_at": "2016-06-19T00:29:00Z", + "pushed_at": "2016-04-04T17:54:55Z", + "git_url": "git://github.com/wiebow/tetris.c64.git", + "ssh_url": "git@github.com:wiebow/tetris.c64.git", + "clone_url": "https://github.com/wiebow/tetris.c64.git", + "svn_url": "https://github.com/wiebow/tetris.c64", + "homepage": "http://wiebow.github.io/tetris.c64", + "size": 85, + "stargazers_count": 20, + "watchers_count": 20, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 3, + "mirror_url": null, + "open_issues_count": 0, + "forks": 3, + "open_issues": 0, + "watchers": 20, + "default_branch": "master", + "score": 17.023262 + }, + { + "id": 12466077, + "name": "tetranglix", + "full_name": "Shikhin/tetranglix", + "owner": { + "login": "Shikhin", + "id": 617680, + "avatar_url": "https://avatars.githubusercontent.com/u/617680?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Shikhin", + "html_url": "https://github.com/Shikhin", + "followers_url": "https://api.github.com/users/Shikhin/followers", + "following_url": "https://api.github.com/users/Shikhin/following{/other_user}", + "gists_url": "https://api.github.com/users/Shikhin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shikhin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shikhin/subscriptions", + "organizations_url": "https://api.github.com/users/Shikhin/orgs", + "repos_url": "https://api.github.com/users/Shikhin/repos", + "events_url": "https://api.github.com/users/Shikhin/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shikhin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Shikhin/tetranglix", + "description": "A bootable 512-byte Tetris clone.", + "fork": false, + "url": "https://api.github.com/repos/Shikhin/tetranglix", + "forks_url": "https://api.github.com/repos/Shikhin/tetranglix/forks", + "keys_url": "https://api.github.com/repos/Shikhin/tetranglix/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Shikhin/tetranglix/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Shikhin/tetranglix/teams", + "hooks_url": "https://api.github.com/repos/Shikhin/tetranglix/hooks", + "issue_events_url": "https://api.github.com/repos/Shikhin/tetranglix/issues/events{/number}", + "events_url": "https://api.github.com/repos/Shikhin/tetranglix/events", + "assignees_url": "https://api.github.com/repos/Shikhin/tetranglix/assignees{/user}", + "branches_url": "https://api.github.com/repos/Shikhin/tetranglix/branches{/branch}", + "tags_url": "https://api.github.com/repos/Shikhin/tetranglix/tags", + "blobs_url": "https://api.github.com/repos/Shikhin/tetranglix/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Shikhin/tetranglix/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Shikhin/tetranglix/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Shikhin/tetranglix/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Shikhin/tetranglix/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Shikhin/tetranglix/languages", + "stargazers_url": "https://api.github.com/repos/Shikhin/tetranglix/stargazers", + "contributors_url": "https://api.github.com/repos/Shikhin/tetranglix/contributors", + "subscribers_url": "https://api.github.com/repos/Shikhin/tetranglix/subscribers", + "subscription_url": "https://api.github.com/repos/Shikhin/tetranglix/subscription", + "commits_url": "https://api.github.com/repos/Shikhin/tetranglix/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Shikhin/tetranglix/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Shikhin/tetranglix/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Shikhin/tetranglix/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Shikhin/tetranglix/contents/{+path}", + "compare_url": "https://api.github.com/repos/Shikhin/tetranglix/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Shikhin/tetranglix/merges", + "archive_url": "https://api.github.com/repos/Shikhin/tetranglix/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Shikhin/tetranglix/downloads", + "issues_url": "https://api.github.com/repos/Shikhin/tetranglix/issues{/number}", + "pulls_url": "https://api.github.com/repos/Shikhin/tetranglix/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Shikhin/tetranglix/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Shikhin/tetranglix/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Shikhin/tetranglix/labels{/name}", + "releases_url": "https://api.github.com/repos/Shikhin/tetranglix/releases{/id}", + "deployments_url": "https://api.github.com/repos/Shikhin/tetranglix/deployments", + "created_at": "2013-08-29T17:03:07Z", + "updated_at": "2016-04-10T15:46:33Z", + "pushed_at": "2014-03-25T15:36:15Z", + "git_url": "git://github.com/Shikhin/tetranglix.git", + "ssh_url": "git@github.com:Shikhin/tetranglix.git", + "clone_url": "https://github.com/Shikhin/tetranglix.git", + "svn_url": "https://github.com/Shikhin/tetranglix", + "homepage": "", + "size": 314, + "stargazers_count": 15, + "watchers_count": 15, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 15, + "default_branch": "master", + "score": 13.566106 + }, + { + "id": 4731946, + "name": "tetris-464", + "full_name": "cjauvin/tetris-464", + "owner": { + "login": "cjauvin", + "id": 488992, + "avatar_url": "https://avatars.githubusercontent.com/u/488992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cjauvin", + "html_url": "https://github.com/cjauvin", + "followers_url": "https://api.github.com/users/cjauvin/followers", + "following_url": "https://api.github.com/users/cjauvin/following{/other_user}", + "gists_url": "https://api.github.com/users/cjauvin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cjauvin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cjauvin/subscriptions", + "organizations_url": "https://api.github.com/users/cjauvin/orgs", + "repos_url": "https://api.github.com/users/cjauvin/repos", + "events_url": "https://api.github.com/users/cjauvin/events{/privacy}", + "received_events_url": "https://api.github.com/users/cjauvin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cjauvin/tetris-464", + "description": "A stripped down Tetris clone for the C=64 (no points, no levels, no nothing, except the bare block falling, controlling and colliding mechanism), in about a KLOC of 6502 assembly.", + "fork": false, + "url": "https://api.github.com/repos/cjauvin/tetris-464", + "forks_url": "https://api.github.com/repos/cjauvin/tetris-464/forks", + "keys_url": "https://api.github.com/repos/cjauvin/tetris-464/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cjauvin/tetris-464/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cjauvin/tetris-464/teams", + "hooks_url": "https://api.github.com/repos/cjauvin/tetris-464/hooks", + "issue_events_url": "https://api.github.com/repos/cjauvin/tetris-464/issues/events{/number}", + "events_url": "https://api.github.com/repos/cjauvin/tetris-464/events", + "assignees_url": "https://api.github.com/repos/cjauvin/tetris-464/assignees{/user}", + "branches_url": "https://api.github.com/repos/cjauvin/tetris-464/branches{/branch}", + "tags_url": "https://api.github.com/repos/cjauvin/tetris-464/tags", + "blobs_url": "https://api.github.com/repos/cjauvin/tetris-464/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cjauvin/tetris-464/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cjauvin/tetris-464/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cjauvin/tetris-464/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cjauvin/tetris-464/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cjauvin/tetris-464/languages", + "stargazers_url": "https://api.github.com/repos/cjauvin/tetris-464/stargazers", + "contributors_url": "https://api.github.com/repos/cjauvin/tetris-464/contributors", + "subscribers_url": "https://api.github.com/repos/cjauvin/tetris-464/subscribers", + "subscription_url": "https://api.github.com/repos/cjauvin/tetris-464/subscription", + "commits_url": "https://api.github.com/repos/cjauvin/tetris-464/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cjauvin/tetris-464/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cjauvin/tetris-464/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cjauvin/tetris-464/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cjauvin/tetris-464/contents/{+path}", + "compare_url": "https://api.github.com/repos/cjauvin/tetris-464/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cjauvin/tetris-464/merges", + "archive_url": "https://api.github.com/repos/cjauvin/tetris-464/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cjauvin/tetris-464/downloads", + "issues_url": "https://api.github.com/repos/cjauvin/tetris-464/issues{/number}", + "pulls_url": "https://api.github.com/repos/cjauvin/tetris-464/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cjauvin/tetris-464/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cjauvin/tetris-464/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cjauvin/tetris-464/labels{/name}", + "releases_url": "https://api.github.com/repos/cjauvin/tetris-464/releases{/id}", + "deployments_url": "https://api.github.com/repos/cjauvin/tetris-464/deployments", + "created_at": "2012-06-20T21:55:01Z", + "updated_at": "2016-05-08T21:31:45Z", + "pushed_at": "2014-02-01T14:50:07Z", + "git_url": "git://github.com/cjauvin/tetris-464.git", + "ssh_url": "git@github.com:cjauvin/tetris-464.git", + "clone_url": "https://github.com/cjauvin/tetris-464.git", + "svn_url": "https://github.com/cjauvin/tetris-464", + "homepage": "", + "size": 236, + "stargazers_count": 13, + "watchers_count": 13, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 13, + "default_branch": "master", + "score": 8.032027 + }, + { + "id": 13047218, + "name": "nand2tetris", + "full_name": "davidbrenner/nand2tetris", + "owner": { + "login": "davidbrenner", + "id": 236870, + "avatar_url": "https://avatars.githubusercontent.com/u/236870?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/davidbrenner", + "html_url": "https://github.com/davidbrenner", + "followers_url": "https://api.github.com/users/davidbrenner/followers", + "following_url": "https://api.github.com/users/davidbrenner/following{/other_user}", + "gists_url": "https://api.github.com/users/davidbrenner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/davidbrenner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/davidbrenner/subscriptions", + "organizations_url": "https://api.github.com/users/davidbrenner/orgs", + "repos_url": "https://api.github.com/users/davidbrenner/repos", + "events_url": "https://api.github.com/users/davidbrenner/events{/privacy}", + "received_events_url": "https://api.github.com/users/davidbrenner/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/davidbrenner/nand2tetris", + "description": "Implementation of a general purpose computer and OS built from first principles.", + "fork": false, + "url": "https://api.github.com/repos/davidbrenner/nand2tetris", + "forks_url": "https://api.github.com/repos/davidbrenner/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/davidbrenner/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/davidbrenner/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/davidbrenner/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/davidbrenner/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/davidbrenner/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/davidbrenner/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/davidbrenner/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/davidbrenner/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/davidbrenner/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/davidbrenner/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/davidbrenner/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/davidbrenner/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/davidbrenner/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/davidbrenner/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/davidbrenner/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/davidbrenner/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/davidbrenner/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/davidbrenner/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/davidbrenner/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/davidbrenner/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/davidbrenner/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/davidbrenner/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/davidbrenner/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/davidbrenner/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/davidbrenner/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/davidbrenner/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/davidbrenner/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/davidbrenner/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/davidbrenner/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/davidbrenner/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/davidbrenner/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/davidbrenner/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/davidbrenner/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/davidbrenner/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/davidbrenner/nand2tetris/deployments", + "created_at": "2013-09-23T21:07:41Z", + "updated_at": "2016-04-03T04:00:48Z", + "pushed_at": "2013-09-29T04:50:51Z", + "git_url": "git://github.com/davidbrenner/nand2tetris.git", + "ssh_url": "git@github.com:davidbrenner/nand2tetris.git", + "clone_url": "https://github.com/davidbrenner/nand2tetris.git", + "svn_url": "https://github.com/davidbrenner/nand2tetris", + "homepage": "", + "size": 460, + "stargazers_count": 10, + "watchers_count": 10, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 5, + "mirror_url": null, + "open_issues_count": 0, + "forks": 5, + "open_issues": 0, + "watchers": 10, + "default_branch": "master", + "score": 12.851244 + }, + { + "id": 15853035, + "name": "nand2tetris", + "full_name": "SeaRbSg/nand2tetris", + "owner": { + "login": "SeaRbSg", + "id": 5482773, + "avatar_url": "https://avatars.githubusercontent.com/u/5482773?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/SeaRbSg", + "html_url": "https://github.com/SeaRbSg", + "followers_url": "https://api.github.com/users/SeaRbSg/followers", + "following_url": "https://api.github.com/users/SeaRbSg/following{/other_user}", + "gists_url": "https://api.github.com/users/SeaRbSg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SeaRbSg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SeaRbSg/subscriptions", + "organizations_url": "https://api.github.com/users/SeaRbSg/orgs", + "repos_url": "https://api.github.com/users/SeaRbSg/repos", + "events_url": "https://api.github.com/users/SeaRbSg/events{/privacy}", + "received_events_url": "https://api.github.com/users/SeaRbSg/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/SeaRbSg/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/SeaRbSg/nand2tetris", + "forks_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/SeaRbSg/nand2tetris/deployments", + "created_at": "2014-01-12T23:13:08Z", + "updated_at": "2016-02-21T01:22:54Z", + "pushed_at": "2014-05-11T14:43:14Z", + "git_url": "git://github.com/SeaRbSg/nand2tetris.git", + "ssh_url": "git@github.com:SeaRbSg/nand2tetris.git", + "clone_url": "https://github.com/SeaRbSg/nand2tetris.git", + "svn_url": "https://github.com/SeaRbSg/nand2tetris", + "homepage": null, + "size": 3368, + "stargazers_count": 9, + "watchers_count": 9, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 9, + "default_branch": "master", + "score": 6.425622 + }, + { + "id": 22265170, + "name": "nand2tetris", + "full_name": "Sean-Der/nand2tetris", + "owner": { + "login": "Sean-Der", + "id": 1302304, + "avatar_url": "https://avatars.githubusercontent.com/u/1302304?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Sean-Der", + "html_url": "https://github.com/Sean-Der", + "followers_url": "https://api.github.com/users/Sean-Der/followers", + "following_url": "https://api.github.com/users/Sean-Der/following{/other_user}", + "gists_url": "https://api.github.com/users/Sean-Der/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Sean-Der/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Sean-Der/subscriptions", + "organizations_url": "https://api.github.com/users/Sean-Der/orgs", + "repos_url": "https://api.github.com/users/Sean-Der/repos", + "events_url": "https://api.github.com/users/Sean-Der/events{/privacy}", + "received_events_url": "https://api.github.com/users/Sean-Der/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Sean-Der/nand2tetris", + "description": "nand2tetris problems", + "fork": false, + "url": "https://api.github.com/repos/Sean-Der/nand2tetris", + "forks_url": "https://api.github.com/repos/Sean-Der/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Sean-Der/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Sean-Der/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Sean-Der/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Sean-Der/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Sean-Der/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Sean-Der/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Sean-Der/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Sean-Der/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Sean-Der/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Sean-Der/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Sean-Der/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Sean-Der/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Sean-Der/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Sean-Der/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Sean-Der/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Sean-Der/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Sean-Der/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Sean-Der/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Sean-Der/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Sean-Der/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Sean-Der/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Sean-Der/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Sean-Der/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Sean-Der/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Sean-Der/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Sean-Der/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Sean-Der/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Sean-Der/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Sean-Der/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Sean-Der/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Sean-Der/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Sean-Der/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Sean-Der/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Sean-Der/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Sean-Der/nand2tetris/deployments", + "created_at": "2014-07-25T17:36:40Z", + "updated_at": "2016-05-27T10:00:18Z", + "pushed_at": "2015-01-14T07:36:35Z", + "git_url": "git://github.com/Sean-Der/nand2tetris.git", + "ssh_url": "git@github.com:Sean-Der/nand2tetris.git", + "clone_url": "https://github.com/Sean-Der/nand2tetris.git", + "svn_url": "https://github.com/Sean-Der/nand2tetris", + "homepage": null, + "size": 1704, + "stargazers_count": 6, + "watchers_count": 6, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 9, + "mirror_url": null, + "open_issues_count": 0, + "forks": 9, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "score": 12.925428 + }, + { + "id": 9770879, + "name": "nand2tetris", + "full_name": "jcoglan/nand2tetris", + "owner": { + "login": "jcoglan", + "id": 9265, + "avatar_url": "https://avatars.githubusercontent.com/u/9265?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jcoglan", + "html_url": "https://github.com/jcoglan", + "followers_url": "https://api.github.com/users/jcoglan/followers", + "following_url": "https://api.github.com/users/jcoglan/following{/other_user}", + "gists_url": "https://api.github.com/users/jcoglan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jcoglan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jcoglan/subscriptions", + "organizations_url": "https://api.github.com/users/jcoglan/orgs", + "repos_url": "https://api.github.com/users/jcoglan/repos", + "events_url": "https://api.github.com/users/jcoglan/events{/privacy}", + "received_events_url": "https://api.github.com/users/jcoglan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jcoglan/nand2tetris", + "description": "Solutions for http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/jcoglan/nand2tetris", + "forks_url": "https://api.github.com/repos/jcoglan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jcoglan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jcoglan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jcoglan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jcoglan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jcoglan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jcoglan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jcoglan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jcoglan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jcoglan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jcoglan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jcoglan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jcoglan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jcoglan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jcoglan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jcoglan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jcoglan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jcoglan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jcoglan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jcoglan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jcoglan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jcoglan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jcoglan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jcoglan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jcoglan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jcoglan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jcoglan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jcoglan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jcoglan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jcoglan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jcoglan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jcoglan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jcoglan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jcoglan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jcoglan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jcoglan/nand2tetris/deployments", + "created_at": "2013-04-30T12:47:22Z", + "updated_at": "2016-06-03T05:29:13Z", + "pushed_at": "2013-05-07T11:05:53Z", + "git_url": "git://github.com/jcoglan/nand2tetris.git", + "ssh_url": "git@github.com:jcoglan/nand2tetris.git", + "clone_url": "https://github.com/jcoglan/nand2tetris.git", + "svn_url": "https://github.com/jcoglan/nand2tetris", + "homepage": null, + "size": 616, + "stargazers_count": 5, + "watchers_count": 5, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 4, + "mirror_url": null, + "open_issues_count": 1, + "forks": 4, + "open_issues": 1, + "watchers": 5, + "default_branch": "master", + "score": 11.299362 + }, + { + "id": 50568612, + "name": "nand2tetris", + "full_name": "mudphone/nand2tetris", + "owner": { + "login": "mudphone", + "id": 24647, + "avatar_url": "https://avatars.githubusercontent.com/u/24647?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mudphone", + "html_url": "https://github.com/mudphone", + "followers_url": "https://api.github.com/users/mudphone/followers", + "following_url": "https://api.github.com/users/mudphone/following{/other_user}", + "gists_url": "https://api.github.com/users/mudphone/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mudphone/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mudphone/subscriptions", + "organizations_url": "https://api.github.com/users/mudphone/orgs", + "repos_url": "https://api.github.com/users/mudphone/repos", + "events_url": "https://api.github.com/users/mudphone/events{/privacy}", + "received_events_url": "https://api.github.com/users/mudphone/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mudphone/nand2tetris", + "description": "Recursive, top-down, language processing, and So Can You!", + "fork": false, + "url": "https://api.github.com/repos/mudphone/nand2tetris", + "forks_url": "https://api.github.com/repos/mudphone/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mudphone/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mudphone/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mudphone/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mudphone/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mudphone/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mudphone/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mudphone/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mudphone/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mudphone/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mudphone/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mudphone/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mudphone/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mudphone/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mudphone/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mudphone/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mudphone/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mudphone/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mudphone/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mudphone/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mudphone/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mudphone/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mudphone/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mudphone/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mudphone/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mudphone/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mudphone/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mudphone/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mudphone/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mudphone/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mudphone/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mudphone/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mudphone/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mudphone/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mudphone/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mudphone/nand2tetris/deployments", + "created_at": "2016-01-28T08:36:04Z", + "updated_at": "2016-05-21T17:49:54Z", + "pushed_at": "2016-05-21T18:20:21Z", + "git_url": "git://github.com/mudphone/nand2tetris.git", + "ssh_url": "git@github.com:mudphone/nand2tetris.git", + "clone_url": "https://github.com/mudphone/nand2tetris.git", + "svn_url": "https://github.com/mudphone/nand2tetris", + "homepage": "", + "size": 288, + "stargazers_count": 5, + "watchers_count": 5, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 5, + "default_branch": "master", + "score": 5.654875 + }, + { + "id": 3924601, + "name": "mips-tetris", + "full_name": "johngunderman/mips-tetris", + "owner": { + "login": "johngunderman", + "id": 66752, + "avatar_url": "https://avatars.githubusercontent.com/u/66752?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/johngunderman", + "html_url": "https://github.com/johngunderman", + "followers_url": "https://api.github.com/users/johngunderman/followers", + "following_url": "https://api.github.com/users/johngunderman/following{/other_user}", + "gists_url": "https://api.github.com/users/johngunderman/gists{/gist_id}", + "starred_url": "https://api.github.com/users/johngunderman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/johngunderman/subscriptions", + "organizations_url": "https://api.github.com/users/johngunderman/orgs", + "repos_url": "https://api.github.com/users/johngunderman/repos", + "events_url": "https://api.github.com/users/johngunderman/events{/privacy}", + "received_events_url": "https://api.github.com/users/johngunderman/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/johngunderman/mips-tetris", + "description": "Tetris implemented in MIPS assembly", + "fork": false, + "url": "https://api.github.com/repos/johngunderman/mips-tetris", + "forks_url": "https://api.github.com/repos/johngunderman/mips-tetris/forks", + "keys_url": "https://api.github.com/repos/johngunderman/mips-tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/johngunderman/mips-tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/johngunderman/mips-tetris/teams", + "hooks_url": "https://api.github.com/repos/johngunderman/mips-tetris/hooks", + "issue_events_url": "https://api.github.com/repos/johngunderman/mips-tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/johngunderman/mips-tetris/events", + "assignees_url": "https://api.github.com/repos/johngunderman/mips-tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/johngunderman/mips-tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/johngunderman/mips-tetris/tags", + "blobs_url": "https://api.github.com/repos/johngunderman/mips-tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/johngunderman/mips-tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/johngunderman/mips-tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/johngunderman/mips-tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/johngunderman/mips-tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/johngunderman/mips-tetris/languages", + "stargazers_url": "https://api.github.com/repos/johngunderman/mips-tetris/stargazers", + "contributors_url": "https://api.github.com/repos/johngunderman/mips-tetris/contributors", + "subscribers_url": "https://api.github.com/repos/johngunderman/mips-tetris/subscribers", + "subscription_url": "https://api.github.com/repos/johngunderman/mips-tetris/subscription", + "commits_url": "https://api.github.com/repos/johngunderman/mips-tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/johngunderman/mips-tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/johngunderman/mips-tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/johngunderman/mips-tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/johngunderman/mips-tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/johngunderman/mips-tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/johngunderman/mips-tetris/merges", + "archive_url": "https://api.github.com/repos/johngunderman/mips-tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/johngunderman/mips-tetris/downloads", + "issues_url": "https://api.github.com/repos/johngunderman/mips-tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/johngunderman/mips-tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/johngunderman/mips-tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/johngunderman/mips-tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/johngunderman/mips-tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/johngunderman/mips-tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/johngunderman/mips-tetris/deployments", + "created_at": "2012-04-04T01:43:31Z", + "updated_at": "2016-02-27T18:25:14Z", + "pushed_at": "2012-05-04T20:13:55Z", + "git_url": "git://github.com/johngunderman/mips-tetris.git", + "ssh_url": "git@github.com:johngunderman/mips-tetris.git", + "clone_url": "https://github.com/johngunderman/mips-tetris.git", + "svn_url": "https://github.com/johngunderman/mips-tetris", + "homepage": "", + "size": 1045, + "stargazers_count": 4, + "watchers_count": 4, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 4, + "default_branch": "master", + "score": 13.566106 + }, + { + "id": 7028354, + "name": "nand2tetris", + "full_name": "seebees/nand2tetris", + "owner": { + "login": "seebees", + "id": 300465, + "avatar_url": "https://avatars.githubusercontent.com/u/300465?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/seebees", + "html_url": "https://github.com/seebees", + "followers_url": "https://api.github.com/users/seebees/followers", + "following_url": "https://api.github.com/users/seebees/following{/other_user}", + "gists_url": "https://api.github.com/users/seebees/gists{/gist_id}", + "starred_url": "https://api.github.com/users/seebees/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/seebees/subscriptions", + "organizations_url": "https://api.github.com/users/seebees/orgs", + "repos_url": "https://api.github.com/users/seebees/repos", + "events_url": "https://api.github.com/users/seebees/events{/privacy}", + "received_events_url": "https://api.github.com/users/seebees/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/seebees/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/seebees/nand2tetris", + "forks_url": "https://api.github.com/repos/seebees/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/seebees/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/seebees/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/seebees/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/seebees/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/seebees/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/seebees/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/seebees/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/seebees/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/seebees/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/seebees/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/seebees/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/seebees/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/seebees/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/seebees/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/seebees/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/seebees/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/seebees/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/seebees/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/seebees/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/seebees/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/seebees/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/seebees/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/seebees/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/seebees/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/seebees/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/seebees/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/seebees/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/seebees/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/seebees/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/seebees/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/seebees/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/seebees/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/seebees/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/seebees/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/seebees/nand2tetris/deployments", + "created_at": "2012-12-06T02:14:42Z", + "updated_at": "2016-05-24T00:30:40Z", + "pushed_at": "2013-02-16T03:21:44Z", + "git_url": "git://github.com/seebees/nand2tetris.git", + "ssh_url": "git@github.com:seebees/nand2tetris.git", + "clone_url": "https://github.com/seebees/nand2tetris.git", + "svn_url": "https://github.com/seebees/nand2tetris", + "homepage": null, + "size": 636, + "stargazers_count": 4, + "watchers_count": 4, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 7, + "mirror_url": null, + "open_issues_count": 0, + "forks": 7, + "open_issues": 0, + "watchers": 4, + "default_branch": "master", + "score": 11.30975 + }, + { + "id": 3081286, + "name": "Tetris", + "full_name": "dtrupenn/Tetris", + "owner": { + "login": "dtrupenn", + "id": 872147, + "avatar_url": "https://avatars.githubusercontent.com/u/872147?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dtrupenn", + "html_url": "https://github.com/dtrupenn", + "followers_url": "https://api.github.com/users/dtrupenn/followers", + "following_url": "https://api.github.com/users/dtrupenn/following{/other_user}", + "gists_url": "https://api.github.com/users/dtrupenn/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dtrupenn/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dtrupenn/subscriptions", + "organizations_url": "https://api.github.com/users/dtrupenn/orgs", + "repos_url": "https://api.github.com/users/dtrupenn/repos", + "events_url": "https://api.github.com/users/dtrupenn/events{/privacy}", + "received_events_url": "https://api.github.com/users/dtrupenn/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dtrupenn/Tetris", + "description": "A C implementation of Tetris using Pennsim through LC4", + "fork": false, + "url": "https://api.github.com/repos/dtrupenn/Tetris", + "forks_url": "https://api.github.com/repos/dtrupenn/Tetris/forks", + "keys_url": "https://api.github.com/repos/dtrupenn/Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dtrupenn/Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dtrupenn/Tetris/teams", + "hooks_url": "https://api.github.com/repos/dtrupenn/Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dtrupenn/Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dtrupenn/Tetris/events", + "assignees_url": "https://api.github.com/repos/dtrupenn/Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dtrupenn/Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dtrupenn/Tetris/tags", + "blobs_url": "https://api.github.com/repos/dtrupenn/Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dtrupenn/Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dtrupenn/Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dtrupenn/Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dtrupenn/Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dtrupenn/Tetris/languages", + "stargazers_url": "https://api.github.com/repos/dtrupenn/Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dtrupenn/Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dtrupenn/Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dtrupenn/Tetris/subscription", + "commits_url": "https://api.github.com/repos/dtrupenn/Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dtrupenn/Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dtrupenn/Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dtrupenn/Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dtrupenn/Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dtrupenn/Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dtrupenn/Tetris/merges", + "archive_url": "https://api.github.com/repos/dtrupenn/Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dtrupenn/Tetris/downloads", + "issues_url": "https://api.github.com/repos/dtrupenn/Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dtrupenn/Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dtrupenn/Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dtrupenn/Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dtrupenn/Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dtrupenn/Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dtrupenn/Tetris/deployments", + "created_at": "2012-01-01T00:31:50Z", + "updated_at": "2016-02-09T14:01:44Z", + "pushed_at": "2012-01-01T00:37:02Z", + "git_url": "git://github.com/dtrupenn/Tetris.git", + "ssh_url": "git@github.com:dtrupenn/Tetris.git", + "clone_url": "https://github.com/dtrupenn/Tetris.git", + "svn_url": "https://github.com/dtrupenn/Tetris", + "homepage": "", + "size": 496, + "stargazers_count": 3, + "watchers_count": 3, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 3, + "default_branch": "master", + "score": 11.815747 + }, + { + "id": 8496749, + "name": "bootris", + "full_name": "dbittman/bootris", + "owner": { + "login": "dbittman", + "id": 3292300, + "avatar_url": "https://avatars.githubusercontent.com/u/3292300?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dbittman", + "html_url": "https://github.com/dbittman", + "followers_url": "https://api.github.com/users/dbittman/followers", + "following_url": "https://api.github.com/users/dbittman/following{/other_user}", + "gists_url": "https://api.github.com/users/dbittman/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dbittman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dbittman/subscriptions", + "organizations_url": "https://api.github.com/users/dbittman/orgs", + "repos_url": "https://api.github.com/users/dbittman/repos", + "events_url": "https://api.github.com/users/dbittman/events{/privacy}", + "received_events_url": "https://api.github.com/users/dbittman/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dbittman/bootris", + "description": "Bootsector Tetris Game", + "fork": false, + "url": "https://api.github.com/repos/dbittman/bootris", + "forks_url": "https://api.github.com/repos/dbittman/bootris/forks", + "keys_url": "https://api.github.com/repos/dbittman/bootris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dbittman/bootris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dbittman/bootris/teams", + "hooks_url": "https://api.github.com/repos/dbittman/bootris/hooks", + "issue_events_url": "https://api.github.com/repos/dbittman/bootris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dbittman/bootris/events", + "assignees_url": "https://api.github.com/repos/dbittman/bootris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dbittman/bootris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dbittman/bootris/tags", + "blobs_url": "https://api.github.com/repos/dbittman/bootris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dbittman/bootris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dbittman/bootris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dbittman/bootris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dbittman/bootris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dbittman/bootris/languages", + "stargazers_url": "https://api.github.com/repos/dbittman/bootris/stargazers", + "contributors_url": "https://api.github.com/repos/dbittman/bootris/contributors", + "subscribers_url": "https://api.github.com/repos/dbittman/bootris/subscribers", + "subscription_url": "https://api.github.com/repos/dbittman/bootris/subscription", + "commits_url": "https://api.github.com/repos/dbittman/bootris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dbittman/bootris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dbittman/bootris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dbittman/bootris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dbittman/bootris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dbittman/bootris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dbittman/bootris/merges", + "archive_url": "https://api.github.com/repos/dbittman/bootris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dbittman/bootris/downloads", + "issues_url": "https://api.github.com/repos/dbittman/bootris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dbittman/bootris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dbittman/bootris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dbittman/bootris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dbittman/bootris/labels{/name}", + "releases_url": "https://api.github.com/repos/dbittman/bootris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dbittman/bootris/deployments", + "created_at": "2013-03-01T07:46:44Z", + "updated_at": "2016-01-09T00:19:37Z", + "pushed_at": "2013-03-01T08:22:10Z", + "git_url": "git://github.com/dbittman/bootris.git", + "ssh_url": "git@github.com:dbittman/bootris.git", + "clone_url": "https://github.com/dbittman/bootris.git", + "svn_url": "https://github.com/dbittman/bootris", + "homepage": null, + "size": 108, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 10.256741 + }, + { + "id": 8799619, + "name": "Nand2Tetris", + "full_name": "timlhenderson/Nand2Tetris", + "owner": { + "login": "timlhenderson", + "id": 3543717, + "avatar_url": "https://avatars.githubusercontent.com/u/3543717?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/timlhenderson", + "html_url": "https://github.com/timlhenderson", + "followers_url": "https://api.github.com/users/timlhenderson/followers", + "following_url": "https://api.github.com/users/timlhenderson/following{/other_user}", + "gists_url": "https://api.github.com/users/timlhenderson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/timlhenderson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/timlhenderson/subscriptions", + "organizations_url": "https://api.github.com/users/timlhenderson/orgs", + "repos_url": "https://api.github.com/users/timlhenderson/repos", + "events_url": "https://api.github.com/users/timlhenderson/events{/privacy}", + "received_events_url": "https://api.github.com/users/timlhenderson/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/timlhenderson/Nand2Tetris", + "description": "My solutions to the computer science course NAND to Tetris", + "fork": false, + "url": "https://api.github.com/repos/timlhenderson/Nand2Tetris", + "forks_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/timlhenderson/Nand2Tetris/deployments", + "created_at": "2013-03-15T13:21:12Z", + "updated_at": "2015-04-30T11:16:04Z", + "pushed_at": "2012-10-15T06:48:42Z", + "git_url": "git://github.com/timlhenderson/Nand2Tetris.git", + "ssh_url": "git@github.com:timlhenderson/Nand2Tetris.git", + "clone_url": "https://github.com/timlhenderson/Nand2Tetris.git", + "svn_url": "https://github.com/timlhenderson/Nand2Tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 117, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 3, + "mirror_url": null, + "open_issues_count": 0, + "forks": 3, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 10.17458 + }, + { + "id": 7025062, + "name": "From-Nand-to-Tetris", + "full_name": "itzhak-razi/From-Nand-to-Tetris", + "owner": { + "login": "itzhak-razi", + "id": 1174967, + "avatar_url": "https://avatars.githubusercontent.com/u/1174967?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/itzhak-razi", + "html_url": "https://github.com/itzhak-razi", + "followers_url": "https://api.github.com/users/itzhak-razi/followers", + "following_url": "https://api.github.com/users/itzhak-razi/following{/other_user}", + "gists_url": "https://api.github.com/users/itzhak-razi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/itzhak-razi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/itzhak-razi/subscriptions", + "organizations_url": "https://api.github.com/users/itzhak-razi/orgs", + "repos_url": "https://api.github.com/users/itzhak-razi/repos", + "events_url": "https://api.github.com/users/itzhak-razi/events{/privacy}", + "received_events_url": "https://api.github.com/users/itzhak-razi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/itzhak-razi/From-Nand-to-Tetris", + "description": "assignments", + "fork": false, + "url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris", + "forks_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/forks", + "keys_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/teams", + "hooks_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/events", + "assignees_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/tags", + "blobs_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/subscription", + "commits_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/merges", + "archive_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/downloads", + "issues_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/itzhak-razi/From-Nand-to-Tetris/deployments", + "created_at": "2012-12-05T21:38:17Z", + "updated_at": "2016-02-01T16:47:32Z", + "pushed_at": "2012-11-23T01:12:58Z", + "git_url": "git://github.com/itzhak-razi/From-Nand-to-Tetris.git", + "ssh_url": "git@github.com:itzhak-razi/From-Nand-to-Tetris.git", + "clone_url": "https://github.com/itzhak-razi/From-Nand-to-Tetris.git", + "svn_url": "https://github.com/itzhak-razi/From-Nand-to-Tetris", + "homepage": null, + "size": 1193, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 8, + "mirror_url": null, + "open_issues_count": 0, + "forks": 8, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 9.638433 + }, + { + "id": 27810275, + "name": "Nand2Tetris", + "full_name": "xctom/Nand2Tetris", + "owner": { + "login": "xctom", + "id": 4891624, + "avatar_url": "https://avatars.githubusercontent.com/u/4891624?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xctom", + "html_url": "https://github.com/xctom", + "followers_url": "https://api.github.com/users/xctom/followers", + "following_url": "https://api.github.com/users/xctom/following{/other_user}", + "gists_url": "https://api.github.com/users/xctom/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xctom/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xctom/subscriptions", + "organizations_url": "https://api.github.com/users/xctom/orgs", + "repos_url": "https://api.github.com/users/xctom/repos", + "events_url": "https://api.github.com/users/xctom/events{/privacy}", + "received_events_url": "https://api.github.com/users/xctom/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/xctom/Nand2Tetris", + "description": "All projects for Nand2Teris", + "fork": false, + "url": "https://api.github.com/repos/xctom/Nand2Tetris", + "forks_url": "https://api.github.com/repos/xctom/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/xctom/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xctom/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xctom/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/xctom/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/xctom/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/xctom/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/xctom/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/xctom/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/xctom/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/xctom/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xctom/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xctom/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xctom/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xctom/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xctom/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/xctom/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/xctom/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/xctom/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/xctom/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/xctom/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xctom/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xctom/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xctom/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xctom/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/xctom/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xctom/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/xctom/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xctom/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/xctom/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/xctom/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xctom/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xctom/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xctom/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/xctom/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/xctom/Nand2Tetris/deployments", + "created_at": "2014-12-10T08:46:59Z", + "updated_at": "2015-12-12T06:24:34Z", + "pushed_at": "2014-12-10T09:16:48Z", + "git_url": "git://github.com/xctom/Nand2Tetris.git", + "ssh_url": "git@github.com:xctom/Nand2Tetris.git", + "clone_url": "https://github.com/xctom/Nand2Tetris.git", + "svn_url": "https://github.com/xctom/Nand2Tetris", + "homepage": null, + "size": 444, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 12, + "mirror_url": null, + "open_issues_count": 0, + "forks": 12, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 8.032027 + }, + { + "id": 9916585, + "name": "nand2tetris", + "full_name": "benmoss/nand2tetris", + "owner": { + "login": "benmoss", + "id": 239754, + "avatar_url": "https://avatars.githubusercontent.com/u/239754?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/benmoss", + "html_url": "https://github.com/benmoss", + "followers_url": "https://api.github.com/users/benmoss/followers", + "following_url": "https://api.github.com/users/benmoss/following{/other_user}", + "gists_url": "https://api.github.com/users/benmoss/gists{/gist_id}", + "starred_url": "https://api.github.com/users/benmoss/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/benmoss/subscriptions", + "organizations_url": "https://api.github.com/users/benmoss/orgs", + "repos_url": "https://api.github.com/users/benmoss/repos", + "events_url": "https://api.github.com/users/benmoss/events{/privacy}", + "received_events_url": "https://api.github.com/users/benmoss/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/benmoss/nand2tetris", + "description": "http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/benmoss/nand2tetris", + "forks_url": "https://api.github.com/repos/benmoss/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/benmoss/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/benmoss/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/benmoss/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/benmoss/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/benmoss/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/benmoss/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/benmoss/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/benmoss/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/benmoss/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/benmoss/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/benmoss/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/benmoss/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/benmoss/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/benmoss/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/benmoss/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/benmoss/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/benmoss/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/benmoss/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/benmoss/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/benmoss/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/benmoss/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/benmoss/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/benmoss/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/benmoss/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/benmoss/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/benmoss/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/benmoss/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/benmoss/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/benmoss/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/benmoss/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/benmoss/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/benmoss/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/benmoss/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/benmoss/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/benmoss/nand2tetris/deployments", + "created_at": "2013-05-07T16:37:55Z", + "updated_at": "2015-04-27T00:18:28Z", + "pushed_at": "2014-11-03T16:42:14Z", + "git_url": "git://github.com/benmoss/nand2tetris.git", + "ssh_url": "git@github.com:benmoss/nand2tetris.git", + "clone_url": "https://github.com/benmoss/nand2tetris.git", + "svn_url": "https://github.com/benmoss/nand2tetris", + "homepage": null, + "size": 644, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 4.8425837 + }, + { + "id": 10392131, + "name": "nand2tetris", + "full_name": "mattkgross/nand2tetris", + "owner": { + "login": "mattkgross", + "id": 3393610, + "avatar_url": "https://avatars.githubusercontent.com/u/3393610?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mattkgross", + "html_url": "https://github.com/mattkgross", + "followers_url": "https://api.github.com/users/mattkgross/followers", + "following_url": "https://api.github.com/users/mattkgross/following{/other_user}", + "gists_url": "https://api.github.com/users/mattkgross/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mattkgross/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mattkgross/subscriptions", + "organizations_url": "https://api.github.com/users/mattkgross/orgs", + "repos_url": "https://api.github.com/users/mattkgross/repos", + "events_url": "https://api.github.com/users/mattkgross/events{/privacy}", + "received_events_url": "https://api.github.com/users/mattkgross/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mattkgross/nand2tetris", + "description": "Tetris Build. Start at Logic Gates, then Assemblers & OS, then APIs & User Interface.", + "fork": false, + "url": "https://api.github.com/repos/mattkgross/nand2tetris", + "forks_url": "https://api.github.com/repos/mattkgross/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mattkgross/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mattkgross/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mattkgross/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mattkgross/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mattkgross/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mattkgross/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mattkgross/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mattkgross/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mattkgross/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mattkgross/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mattkgross/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mattkgross/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mattkgross/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mattkgross/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mattkgross/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mattkgross/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mattkgross/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mattkgross/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mattkgross/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mattkgross/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mattkgross/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mattkgross/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mattkgross/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mattkgross/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mattkgross/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mattkgross/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mattkgross/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mattkgross/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mattkgross/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mattkgross/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mattkgross/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mattkgross/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mattkgross/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mattkgross/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mattkgross/nand2tetris/deployments", + "created_at": "2013-05-30T21:12:42Z", + "updated_at": "2015-04-20T17:22:10Z", + "pushed_at": "2013-06-13T02:53:18Z", + "git_url": "git://github.com/mattkgross/nand2tetris.git", + "ssh_url": "git@github.com:mattkgross/nand2tetris.git", + "clone_url": "https://github.com/mattkgross/nand2tetris.git", + "svn_url": "https://github.com/mattkgross/nand2tetris", + "homepage": null, + "size": 7364, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 4.8192167 + }, + { + "id": 26382269, + "name": "nand2tetris", + "full_name": "anirudt/nand2tetris", + "owner": { + "login": "anirudt", + "id": 5916149, + "avatar_url": "https://avatars.githubusercontent.com/u/5916149?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/anirudt", + "html_url": "https://github.com/anirudt", + "followers_url": "https://api.github.com/users/anirudt/followers", + "following_url": "https://api.github.com/users/anirudt/following{/other_user}", + "gists_url": "https://api.github.com/users/anirudt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/anirudt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/anirudt/subscriptions", + "organizations_url": "https://api.github.com/users/anirudt/orgs", + "repos_url": "https://api.github.com/users/anirudt/repos", + "events_url": "https://api.github.com/users/anirudt/events{/privacy}", + "received_events_url": "https://api.github.com/users/anirudt/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/anirudt/nand2tetris", + "description": "Nand2Tetris implementation from 'The Elements of Computing Systems'", + "fork": false, + "url": "https://api.github.com/repos/anirudt/nand2tetris", + "forks_url": "https://api.github.com/repos/anirudt/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/anirudt/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/anirudt/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/anirudt/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/anirudt/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/anirudt/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/anirudt/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/anirudt/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/anirudt/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/anirudt/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/anirudt/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/anirudt/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/anirudt/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/anirudt/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/anirudt/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/anirudt/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/anirudt/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/anirudt/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/anirudt/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/anirudt/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/anirudt/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/anirudt/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/anirudt/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/anirudt/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/anirudt/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/anirudt/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/anirudt/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/anirudt/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/anirudt/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/anirudt/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/anirudt/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/anirudt/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/anirudt/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/anirudt/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/anirudt/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/anirudt/nand2tetris/deployments", + "created_at": "2014-11-09T02:37:16Z", + "updated_at": "2016-05-23T18:19:05Z", + "pushed_at": "2014-11-13T13:27:28Z", + "git_url": "git://github.com/anirudt/nand2tetris.git", + "ssh_url": "git@github.com:anirudt/nand2tetris.git", + "clone_url": "https://github.com/anirudt/nand2tetris.git", + "svn_url": "https://github.com/anirudt/nand2tetris", + "homepage": null, + "size": 356, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 4.8192167 + }, + { + "id": 42813938, + "name": "nand2tetris-memo", + "full_name": "hirak/nand2tetris-memo", + "owner": { + "login": "hirak", + "id": 835251, + "avatar_url": "https://avatars.githubusercontent.com/u/835251?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hirak", + "html_url": "https://github.com/hirak", + "followers_url": "https://api.github.com/users/hirak/followers", + "following_url": "https://api.github.com/users/hirak/following{/other_user}", + "gists_url": "https://api.github.com/users/hirak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hirak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hirak/subscriptions", + "organizations_url": "https://api.github.com/users/hirak/orgs", + "repos_url": "https://api.github.com/users/hirak/repos", + "events_url": "https://api.github.com/users/hirak/events{/privacy}", + "received_events_url": "https://api.github.com/users/hirak/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hirak/nand2tetris-memo", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/hirak/nand2tetris-memo", + "forks_url": "https://api.github.com/repos/hirak/nand2tetris-memo/forks", + "keys_url": "https://api.github.com/repos/hirak/nand2tetris-memo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hirak/nand2tetris-memo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hirak/nand2tetris-memo/teams", + "hooks_url": "https://api.github.com/repos/hirak/nand2tetris-memo/hooks", + "issue_events_url": "https://api.github.com/repos/hirak/nand2tetris-memo/issues/events{/number}", + "events_url": "https://api.github.com/repos/hirak/nand2tetris-memo/events", + "assignees_url": "https://api.github.com/repos/hirak/nand2tetris-memo/assignees{/user}", + "branches_url": "https://api.github.com/repos/hirak/nand2tetris-memo/branches{/branch}", + "tags_url": "https://api.github.com/repos/hirak/nand2tetris-memo/tags", + "blobs_url": "https://api.github.com/repos/hirak/nand2tetris-memo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hirak/nand2tetris-memo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hirak/nand2tetris-memo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hirak/nand2tetris-memo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hirak/nand2tetris-memo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hirak/nand2tetris-memo/languages", + "stargazers_url": "https://api.github.com/repos/hirak/nand2tetris-memo/stargazers", + "contributors_url": "https://api.github.com/repos/hirak/nand2tetris-memo/contributors", + "subscribers_url": "https://api.github.com/repos/hirak/nand2tetris-memo/subscribers", + "subscription_url": "https://api.github.com/repos/hirak/nand2tetris-memo/subscription", + "commits_url": "https://api.github.com/repos/hirak/nand2tetris-memo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hirak/nand2tetris-memo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hirak/nand2tetris-memo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hirak/nand2tetris-memo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hirak/nand2tetris-memo/contents/{+path}", + "compare_url": "https://api.github.com/repos/hirak/nand2tetris-memo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hirak/nand2tetris-memo/merges", + "archive_url": "https://api.github.com/repos/hirak/nand2tetris-memo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hirak/nand2tetris-memo/downloads", + "issues_url": "https://api.github.com/repos/hirak/nand2tetris-memo/issues{/number}", + "pulls_url": "https://api.github.com/repos/hirak/nand2tetris-memo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hirak/nand2tetris-memo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hirak/nand2tetris-memo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hirak/nand2tetris-memo/labels{/name}", + "releases_url": "https://api.github.com/repos/hirak/nand2tetris-memo/releases{/id}", + "deployments_url": "https://api.github.com/repos/hirak/nand2tetris-memo/deployments", + "created_at": "2015-09-20T13:29:15Z", + "updated_at": "2016-01-06T21:12:41Z", + "pushed_at": "2015-11-06T06:53:00Z", + "git_url": "git://github.com/hirak/nand2tetris-memo.git", + "ssh_url": "git@github.com:hirak/nand2tetris-memo.git", + "clone_url": "https://github.com/hirak/nand2tetris-memo.git", + "svn_url": "https://github.com/hirak/nand2tetris-memo", + "homepage": null, + "size": 356, + "stargazers_count": 2, + "watchers_count": 2, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 2, + "default_branch": "master", + "score": 4.0160136 + }, + { + "id": 14554907, + "name": "8088-Microprocessor-Tetris", + "full_name": "coolhongly/8088-Microprocessor-Tetris", + "owner": { + "login": "coolhongly", + "id": 775239, + "avatar_url": "https://avatars.githubusercontent.com/u/775239?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/coolhongly", + "html_url": "https://github.com/coolhongly", + "followers_url": "https://api.github.com/users/coolhongly/followers", + "following_url": "https://api.github.com/users/coolhongly/following{/other_user}", + "gists_url": "https://api.github.com/users/coolhongly/gists{/gist_id}", + "starred_url": "https://api.github.com/users/coolhongly/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/coolhongly/subscriptions", + "organizations_url": "https://api.github.com/users/coolhongly/orgs", + "repos_url": "https://api.github.com/users/coolhongly/repos", + "events_url": "https://api.github.com/users/coolhongly/events{/privacy}", + "received_events_url": "https://api.github.com/users/coolhongly/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/coolhongly/8088-Microprocessor-Tetris", + "description": "Tetris", + "fork": false, + "url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris", + "forks_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/forks", + "keys_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/teams", + "hooks_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/events", + "assignees_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/tags", + "blobs_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/subscription", + "commits_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/merges", + "archive_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/downloads", + "issues_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/coolhongly/8088-Microprocessor-Tetris/deployments", + "created_at": "2013-11-20T11:34:34Z", + "updated_at": "2015-09-17T17:02:21Z", + "pushed_at": "2014-09-11T05:20:19Z", + "git_url": "git://github.com/coolhongly/8088-Microprocessor-Tetris.git", + "ssh_url": "git@github.com:coolhongly/8088-Microprocessor-Tetris.git", + "clone_url": "https://github.com/coolhongly/8088-Microprocessor-Tetris.git", + "svn_url": "https://github.com/coolhongly/8088-Microprocessor-Tetris", + "homepage": null, + "size": 4048, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 13.675654 + }, + { + "id": 9820994, + "name": "tetris-assembly", + "full_name": "caioflores/tetris-assembly", + "owner": { + "login": "caioflores", + "id": 4183877, + "avatar_url": "https://avatars.githubusercontent.com/u/4183877?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/caioflores", + "html_url": "https://github.com/caioflores", + "followers_url": "https://api.github.com/users/caioflores/followers", + "following_url": "https://api.github.com/users/caioflores/following{/other_user}", + "gists_url": "https://api.github.com/users/caioflores/gists{/gist_id}", + "starred_url": "https://api.github.com/users/caioflores/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/caioflores/subscriptions", + "organizations_url": "https://api.github.com/users/caioflores/orgs", + "repos_url": "https://api.github.com/users/caioflores/repos", + "events_url": "https://api.github.com/users/caioflores/events{/privacy}", + "received_events_url": "https://api.github.com/users/caioflores/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/caioflores/tetris-assembly", + "description": "Tetris assembly ICMC", + "fork": false, + "url": "https://api.github.com/repos/caioflores/tetris-assembly", + "forks_url": "https://api.github.com/repos/caioflores/tetris-assembly/forks", + "keys_url": "https://api.github.com/repos/caioflores/tetris-assembly/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/caioflores/tetris-assembly/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/caioflores/tetris-assembly/teams", + "hooks_url": "https://api.github.com/repos/caioflores/tetris-assembly/hooks", + "issue_events_url": "https://api.github.com/repos/caioflores/tetris-assembly/issues/events{/number}", + "events_url": "https://api.github.com/repos/caioflores/tetris-assembly/events", + "assignees_url": "https://api.github.com/repos/caioflores/tetris-assembly/assignees{/user}", + "branches_url": "https://api.github.com/repos/caioflores/tetris-assembly/branches{/branch}", + "tags_url": "https://api.github.com/repos/caioflores/tetris-assembly/tags", + "blobs_url": "https://api.github.com/repos/caioflores/tetris-assembly/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/caioflores/tetris-assembly/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/caioflores/tetris-assembly/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/caioflores/tetris-assembly/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/caioflores/tetris-assembly/statuses/{sha}", + "languages_url": "https://api.github.com/repos/caioflores/tetris-assembly/languages", + "stargazers_url": "https://api.github.com/repos/caioflores/tetris-assembly/stargazers", + "contributors_url": "https://api.github.com/repos/caioflores/tetris-assembly/contributors", + "subscribers_url": "https://api.github.com/repos/caioflores/tetris-assembly/subscribers", + "subscription_url": "https://api.github.com/repos/caioflores/tetris-assembly/subscription", + "commits_url": "https://api.github.com/repos/caioflores/tetris-assembly/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/caioflores/tetris-assembly/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/caioflores/tetris-assembly/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/caioflores/tetris-assembly/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/caioflores/tetris-assembly/contents/{+path}", + "compare_url": "https://api.github.com/repos/caioflores/tetris-assembly/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/caioflores/tetris-assembly/merges", + "archive_url": "https://api.github.com/repos/caioflores/tetris-assembly/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/caioflores/tetris-assembly/downloads", + "issues_url": "https://api.github.com/repos/caioflores/tetris-assembly/issues{/number}", + "pulls_url": "https://api.github.com/repos/caioflores/tetris-assembly/pulls{/number}", + "milestones_url": "https://api.github.com/repos/caioflores/tetris-assembly/milestones{/number}", + "notifications_url": "https://api.github.com/repos/caioflores/tetris-assembly/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/caioflores/tetris-assembly/labels{/name}", + "releases_url": "https://api.github.com/repos/caioflores/tetris-assembly/releases{/id}", + "deployments_url": "https://api.github.com/repos/caioflores/tetris-assembly/deployments", + "created_at": "2013-05-02T19:30:29Z", + "updated_at": "2016-03-23T16:47:26Z", + "pushed_at": "2013-05-02T19:45:04Z", + "git_url": "git://github.com/caioflores/tetris-assembly.git", + "ssh_url": "git@github.com:caioflores/tetris-assembly.git", + "clone_url": "https://github.com/caioflores/tetris-assembly.git", + "svn_url": "https://github.com/caioflores/tetris-assembly", + "homepage": null, + "size": 100, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 11.870342 + }, + { + "id": 30859168, + "name": "NandToTetris", + "full_name": "markqian/NandToTetris", + "owner": { + "login": "markqian", + "id": 222635, + "avatar_url": "https://avatars.githubusercontent.com/u/222635?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/markqian", + "html_url": "https://github.com/markqian", + "followers_url": "https://api.github.com/users/markqian/followers", + "following_url": "https://api.github.com/users/markqian/following{/other_user}", + "gists_url": "https://api.github.com/users/markqian/gists{/gist_id}", + "starred_url": "https://api.github.com/users/markqian/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/markqian/subscriptions", + "organizations_url": "https://api.github.com/users/markqian/orgs", + "repos_url": "https://api.github.com/users/markqian/repos", + "events_url": "https://api.github.com/users/markqian/events{/privacy}", + "received_events_url": "https://api.github.com/users/markqian/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/markqian/NandToTetris", + "description": "Nand to Tetris projects", + "fork": false, + "url": "https://api.github.com/repos/markqian/NandToTetris", + "forks_url": "https://api.github.com/repos/markqian/NandToTetris/forks", + "keys_url": "https://api.github.com/repos/markqian/NandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/markqian/NandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/markqian/NandToTetris/teams", + "hooks_url": "https://api.github.com/repos/markqian/NandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/markqian/NandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/markqian/NandToTetris/events", + "assignees_url": "https://api.github.com/repos/markqian/NandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/markqian/NandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/markqian/NandToTetris/tags", + "blobs_url": "https://api.github.com/repos/markqian/NandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/markqian/NandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/markqian/NandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/markqian/NandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/markqian/NandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/markqian/NandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/markqian/NandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/markqian/NandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/markqian/NandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/markqian/NandToTetris/subscription", + "commits_url": "https://api.github.com/repos/markqian/NandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/markqian/NandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/markqian/NandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/markqian/NandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/markqian/NandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/markqian/NandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/markqian/NandToTetris/merges", + "archive_url": "https://api.github.com/repos/markqian/NandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/markqian/NandToTetris/downloads", + "issues_url": "https://api.github.com/repos/markqian/NandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/markqian/NandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/markqian/NandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/markqian/NandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/markqian/NandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/markqian/NandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/markqian/NandToTetris/deployments", + "created_at": "2015-02-16T08:08:18Z", + "updated_at": "2015-02-16T08:21:15Z", + "pushed_at": "2015-02-16T08:13:46Z", + "git_url": "git://github.com/markqian/NandToTetris.git", + "ssh_url": "git@github.com:markqian/NandToTetris.git", + "clone_url": "https://github.com/markqian/NandToTetris.git", + "svn_url": "https://github.com/markqian/NandToTetris", + "homepage": "", + "size": 332, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 6.8093047 + }, + { + "id": 35788139, + "name": "TetrisCE", + "full_name": "drdnar/TetrisCE", + "owner": { + "login": "drdnar", + "id": 9597986, + "avatar_url": "https://avatars.githubusercontent.com/u/9597986?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/drdnar", + "html_url": "https://github.com/drdnar", + "followers_url": "https://api.github.com/users/drdnar/followers", + "following_url": "https://api.github.com/users/drdnar/following{/other_user}", + "gists_url": "https://api.github.com/users/drdnar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/drdnar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/drdnar/subscriptions", + "organizations_url": "https://api.github.com/users/drdnar/orgs", + "repos_url": "https://api.github.com/users/drdnar/repos", + "events_url": "https://api.github.com/users/drdnar/events{/privacy}", + "received_events_url": "https://api.github.com/users/drdnar/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/drdnar/TetrisCE", + "description": "A Tetris clone for the TI-84 Plus CE", + "fork": false, + "url": "https://api.github.com/repos/drdnar/TetrisCE", + "forks_url": "https://api.github.com/repos/drdnar/TetrisCE/forks", + "keys_url": "https://api.github.com/repos/drdnar/TetrisCE/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/drdnar/TetrisCE/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/drdnar/TetrisCE/teams", + "hooks_url": "https://api.github.com/repos/drdnar/TetrisCE/hooks", + "issue_events_url": "https://api.github.com/repos/drdnar/TetrisCE/issues/events{/number}", + "events_url": "https://api.github.com/repos/drdnar/TetrisCE/events", + "assignees_url": "https://api.github.com/repos/drdnar/TetrisCE/assignees{/user}", + "branches_url": "https://api.github.com/repos/drdnar/TetrisCE/branches{/branch}", + "tags_url": "https://api.github.com/repos/drdnar/TetrisCE/tags", + "blobs_url": "https://api.github.com/repos/drdnar/TetrisCE/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/drdnar/TetrisCE/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/drdnar/TetrisCE/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/drdnar/TetrisCE/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/drdnar/TetrisCE/statuses/{sha}", + "languages_url": "https://api.github.com/repos/drdnar/TetrisCE/languages", + "stargazers_url": "https://api.github.com/repos/drdnar/TetrisCE/stargazers", + "contributors_url": "https://api.github.com/repos/drdnar/TetrisCE/contributors", + "subscribers_url": "https://api.github.com/repos/drdnar/TetrisCE/subscribers", + "subscription_url": "https://api.github.com/repos/drdnar/TetrisCE/subscription", + "commits_url": "https://api.github.com/repos/drdnar/TetrisCE/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/drdnar/TetrisCE/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/drdnar/TetrisCE/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/drdnar/TetrisCE/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/drdnar/TetrisCE/contents/{+path}", + "compare_url": "https://api.github.com/repos/drdnar/TetrisCE/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/drdnar/TetrisCE/merges", + "archive_url": "https://api.github.com/repos/drdnar/TetrisCE/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/drdnar/TetrisCE/downloads", + "issues_url": "https://api.github.com/repos/drdnar/TetrisCE/issues{/number}", + "pulls_url": "https://api.github.com/repos/drdnar/TetrisCE/pulls{/number}", + "milestones_url": "https://api.github.com/repos/drdnar/TetrisCE/milestones{/number}", + "notifications_url": "https://api.github.com/repos/drdnar/TetrisCE/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/drdnar/TetrisCE/labels{/name}", + "releases_url": "https://api.github.com/repos/drdnar/TetrisCE/releases{/id}", + "deployments_url": "https://api.github.com/repos/drdnar/TetrisCE/deployments", + "created_at": "2015-05-18T00:07:48Z", + "updated_at": "2016-02-01T22:21:14Z", + "pushed_at": "2016-03-23T22:21:39Z", + "git_url": "git://github.com/drdnar/TetrisCE.git", + "ssh_url": "git@github.com:drdnar/TetrisCE.git", + "clone_url": "https://github.com/drdnar/TetrisCE.git", + "svn_url": "https://github.com/drdnar/TetrisCE", + "homepage": null, + "size": 161, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 4.579539 + }, + { + "id": 26052006, + "name": "nand2tetris", + "full_name": "mudge/nand2tetris", + "owner": { + "login": "mudge", + "id": 287, + "avatar_url": "https://avatars.githubusercontent.com/u/287?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mudge", + "html_url": "https://github.com/mudge", + "followers_url": "https://api.github.com/users/mudge/followers", + "following_url": "https://api.github.com/users/mudge/following{/other_user}", + "gists_url": "https://api.github.com/users/mudge/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mudge/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mudge/subscriptions", + "organizations_url": "https://api.github.com/users/mudge/orgs", + "repos_url": "https://api.github.com/users/mudge/repos", + "events_url": "https://api.github.com/users/mudge/events{/privacy}", + "received_events_url": "https://api.github.com/users/mudge/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mudge/nand2tetris", + "description": "On-going solutions to the \"From NAND to Tetris\" exercises", + "fork": false, + "url": "https://api.github.com/repos/mudge/nand2tetris", + "forks_url": "https://api.github.com/repos/mudge/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mudge/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mudge/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mudge/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mudge/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mudge/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mudge/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mudge/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mudge/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mudge/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mudge/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mudge/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mudge/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mudge/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mudge/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mudge/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mudge/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mudge/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mudge/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mudge/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mudge/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mudge/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mudge/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mudge/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mudge/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mudge/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mudge/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mudge/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mudge/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mudge/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mudge/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mudge/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mudge/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mudge/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mudge/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mudge/nand2tetris/deployments", + "created_at": "2014-11-01T13:58:17Z", + "updated_at": "2014-11-23T20:37:32Z", + "pushed_at": "2014-11-23T20:37:32Z", + "git_url": "git://github.com/mudge/nand2tetris.git", + "ssh_url": "git@github.com:mudge/nand2tetris.git", + "clone_url": "https://github.com/mudge/nand2tetris.git", + "svn_url": "https://github.com/mudge/nand2tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 428, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 4.2394085 + }, + { + "id": 43105091, + "name": "buildAComputer", + "full_name": "timqian/buildAComputer", + "owner": { + "login": "timqian", + "id": 5512552, + "avatar_url": "https://avatars.githubusercontent.com/u/5512552?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/timqian", + "html_url": "https://github.com/timqian", + "followers_url": "https://api.github.com/users/timqian/followers", + "following_url": "https://api.github.com/users/timqian/following{/other_user}", + "gists_url": "https://api.github.com/users/timqian/gists{/gist_id}", + "starred_url": "https://api.github.com/users/timqian/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/timqian/subscriptions", + "organizations_url": "https://api.github.com/users/timqian/orgs", + "repos_url": "https://api.github.com/users/timqian/repos", + "events_url": "https://api.github.com/users/timqian/events{/privacy}", + "received_events_url": "https://api.github.com/users/timqian/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/timqian/buildAComputer", + "description": "My implementation of the project: [From NAND to Tetris](http://nand2tetris.org/)", + "fork": false, + "url": "https://api.github.com/repos/timqian/buildAComputer", + "forks_url": "https://api.github.com/repos/timqian/buildAComputer/forks", + "keys_url": "https://api.github.com/repos/timqian/buildAComputer/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/timqian/buildAComputer/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/timqian/buildAComputer/teams", + "hooks_url": "https://api.github.com/repos/timqian/buildAComputer/hooks", + "issue_events_url": "https://api.github.com/repos/timqian/buildAComputer/issues/events{/number}", + "events_url": "https://api.github.com/repos/timqian/buildAComputer/events", + "assignees_url": "https://api.github.com/repos/timqian/buildAComputer/assignees{/user}", + "branches_url": "https://api.github.com/repos/timqian/buildAComputer/branches{/branch}", + "tags_url": "https://api.github.com/repos/timqian/buildAComputer/tags", + "blobs_url": "https://api.github.com/repos/timqian/buildAComputer/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/timqian/buildAComputer/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/timqian/buildAComputer/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/timqian/buildAComputer/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/timqian/buildAComputer/statuses/{sha}", + "languages_url": "https://api.github.com/repos/timqian/buildAComputer/languages", + "stargazers_url": "https://api.github.com/repos/timqian/buildAComputer/stargazers", + "contributors_url": "https://api.github.com/repos/timqian/buildAComputer/contributors", + "subscribers_url": "https://api.github.com/repos/timqian/buildAComputer/subscribers", + "subscription_url": "https://api.github.com/repos/timqian/buildAComputer/subscription", + "commits_url": "https://api.github.com/repos/timqian/buildAComputer/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/timqian/buildAComputer/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/timqian/buildAComputer/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/timqian/buildAComputer/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/timqian/buildAComputer/contents/{+path}", + "compare_url": "https://api.github.com/repos/timqian/buildAComputer/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/timqian/buildAComputer/merges", + "archive_url": "https://api.github.com/repos/timqian/buildAComputer/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/timqian/buildAComputer/downloads", + "issues_url": "https://api.github.com/repos/timqian/buildAComputer/issues{/number}", + "pulls_url": "https://api.github.com/repos/timqian/buildAComputer/pulls{/number}", + "milestones_url": "https://api.github.com/repos/timqian/buildAComputer/milestones{/number}", + "notifications_url": "https://api.github.com/repos/timqian/buildAComputer/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/timqian/buildAComputer/labels{/name}", + "releases_url": "https://api.github.com/repos/timqian/buildAComputer/releases{/id}", + "deployments_url": "https://api.github.com/repos/timqian/buildAComputer/deployments", + "created_at": "2015-09-25T02:31:04Z", + "updated_at": "2015-09-25T05:07:22Z", + "pushed_at": "2015-10-03T02:44:20Z", + "git_url": "git://github.com/timqian/buildAComputer.git", + "ssh_url": "git@github.com:timqian/buildAComputer.git", + "clone_url": "https://github.com/timqian/buildAComputer.git", + "svn_url": "https://github.com/timqian/buildAComputer", + "homepage": "", + "size": 276, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.4189136 + }, + { + "id": 10192719, + "name": "NAND2Tetris", + "full_name": "BenTristem/NAND2Tetris", + "owner": { + "login": "BenTristem", + "id": 4483240, + "avatar_url": "https://avatars.githubusercontent.com/u/4483240?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/BenTristem", + "html_url": "https://github.com/BenTristem", + "followers_url": "https://api.github.com/users/BenTristem/followers", + "following_url": "https://api.github.com/users/BenTristem/following{/other_user}", + "gists_url": "https://api.github.com/users/BenTristem/gists{/gist_id}", + "starred_url": "https://api.github.com/users/BenTristem/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/BenTristem/subscriptions", + "organizations_url": "https://api.github.com/users/BenTristem/orgs", + "repos_url": "https://api.github.com/users/BenTristem/repos", + "events_url": "https://api.github.com/users/BenTristem/events{/privacy}", + "received_events_url": "https://api.github.com/users/BenTristem/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/BenTristem/NAND2Tetris", + "description": "NAND2Tetris project", + "fork": false, + "url": "https://api.github.com/repos/BenTristem/NAND2Tetris", + "forks_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/forks", + "keys_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/teams", + "hooks_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/events", + "assignees_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/tags", + "blobs_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/subscription", + "commits_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/merges", + "archive_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/downloads", + "issues_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/BenTristem/NAND2Tetris/deployments", + "created_at": "2013-05-21T09:59:34Z", + "updated_at": "2014-12-15T20:08:02Z", + "pushed_at": "2013-05-22T10:23:40Z", + "git_url": "git://github.com/BenTristem/NAND2Tetris.git", + "ssh_url": "git@github.com:BenTristem/NAND2Tetris.git", + "clone_url": "https://github.com/BenTristem/NAND2Tetris.git", + "svn_url": "https://github.com/BenTristem/NAND2Tetris", + "homepage": null, + "size": 9840, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 31913292, + "name": "nand2tetris", + "full_name": "jennahowe/nand2tetris", + "owner": { + "login": "jennahowe", + "id": 7994800, + "avatar_url": "https://avatars.githubusercontent.com/u/7994800?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jennahowe", + "html_url": "https://github.com/jennahowe", + "followers_url": "https://api.github.com/users/jennahowe/followers", + "following_url": "https://api.github.com/users/jennahowe/following{/other_user}", + "gists_url": "https://api.github.com/users/jennahowe/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jennahowe/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jennahowe/subscriptions", + "organizations_url": "https://api.github.com/users/jennahowe/orgs", + "repos_url": "https://api.github.com/users/jennahowe/repos", + "events_url": "https://api.github.com/users/jennahowe/events{/privacy}", + "received_events_url": "https://api.github.com/users/jennahowe/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jennahowe/nand2tetris", + "description": "My work on the nand2tetris (Elements of Computing Systems) MIT course http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/jennahowe/nand2tetris", + "forks_url": "https://api.github.com/repos/jennahowe/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jennahowe/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jennahowe/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jennahowe/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jennahowe/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jennahowe/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jennahowe/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jennahowe/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jennahowe/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jennahowe/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jennahowe/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jennahowe/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jennahowe/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jennahowe/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jennahowe/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jennahowe/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jennahowe/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jennahowe/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jennahowe/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jennahowe/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jennahowe/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jennahowe/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jennahowe/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jennahowe/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jennahowe/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jennahowe/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jennahowe/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jennahowe/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jennahowe/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jennahowe/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jennahowe/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jennahowe/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jennahowe/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jennahowe/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jennahowe/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jennahowe/nand2tetris/deployments", + "created_at": "2015-03-09T17:44:28Z", + "updated_at": "2015-03-18T15:37:15Z", + "pushed_at": "2015-03-18T15:37:13Z", + "git_url": "git://github.com/jennahowe/nand2tetris.git", + "ssh_url": "git@github.com:jennahowe/nand2tetris.git", + "clone_url": "https://github.com/jennahowe/nand2tetris.git", + "svn_url": "https://github.com/jennahowe/nand2tetris", + "homepage": "", + "size": 348, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 32660807, + "name": "nand2tetris", + "full_name": "rayning0/nand2tetris", + "owner": { + "login": "rayning0", + "id": 1870151, + "avatar_url": "https://avatars.githubusercontent.com/u/1870151?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rayning0", + "html_url": "https://github.com/rayning0", + "followers_url": "https://api.github.com/users/rayning0/followers", + "following_url": "https://api.github.com/users/rayning0/following{/other_user}", + "gists_url": "https://api.github.com/users/rayning0/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rayning0/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rayning0/subscriptions", + "organizations_url": "https://api.github.com/users/rayning0/orgs", + "repos_url": "https://api.github.com/users/rayning0/repos", + "events_url": "https://api.github.com/users/rayning0/events{/privacy}", + "received_events_url": "https://api.github.com/users/rayning0/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rayning0/nand2tetris", + "description": "Nand2Tetris (http://www.nand2tetris.org), or Harvard CS 101. Building the hardware/software of a virtual computer from ground up.", + "fork": false, + "url": "https://api.github.com/repos/rayning0/nand2tetris", + "forks_url": "https://api.github.com/repos/rayning0/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/rayning0/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rayning0/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rayning0/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/rayning0/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/rayning0/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/rayning0/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/rayning0/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/rayning0/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/rayning0/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/rayning0/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rayning0/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rayning0/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rayning0/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rayning0/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rayning0/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/rayning0/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/rayning0/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/rayning0/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/rayning0/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/rayning0/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rayning0/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rayning0/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rayning0/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rayning0/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/rayning0/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rayning0/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/rayning0/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rayning0/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/rayning0/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/rayning0/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rayning0/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rayning0/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rayning0/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/rayning0/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/rayning0/nand2tetris/deployments", + "created_at": "2015-03-22T03:47:39Z", + "updated_at": "2015-03-22T15:06:03Z", + "pushed_at": "2015-03-22T15:04:05Z", + "git_url": "git://github.com/rayning0/nand2tetris.git", + "ssh_url": "git@github.com:rayning0/nand2tetris.git", + "clone_url": "https://github.com/rayning0/nand2tetris.git", + "svn_url": "https://github.com/rayning0/nand2tetris", + "homepage": null, + "size": 616, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 42123459, + "name": "nand2tetris", + "full_name": "filhoweuler/nand2tetris", + "owner": { + "login": "filhoweuler", + "id": 6530179, + "avatar_url": "https://avatars.githubusercontent.com/u/6530179?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/filhoweuler", + "html_url": "https://github.com/filhoweuler", + "followers_url": "https://api.github.com/users/filhoweuler/followers", + "following_url": "https://api.github.com/users/filhoweuler/following{/other_user}", + "gists_url": "https://api.github.com/users/filhoweuler/gists{/gist_id}", + "starred_url": "https://api.github.com/users/filhoweuler/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/filhoweuler/subscriptions", + "organizations_url": "https://api.github.com/users/filhoweuler/orgs", + "repos_url": "https://api.github.com/users/filhoweuler/repos", + "events_url": "https://api.github.com/users/filhoweuler/events{/privacy}", + "received_events_url": "https://api.github.com/users/filhoweuler/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/filhoweuler/nand2tetris", + "description": "Repositorio criado para salvar trabalhos da disciplina de AOC 2015/2", + "fork": false, + "url": "https://api.github.com/repos/filhoweuler/nand2tetris", + "forks_url": "https://api.github.com/repos/filhoweuler/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/filhoweuler/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/filhoweuler/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/filhoweuler/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/filhoweuler/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/filhoweuler/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/filhoweuler/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/filhoweuler/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/filhoweuler/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/filhoweuler/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/filhoweuler/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/filhoweuler/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/filhoweuler/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/filhoweuler/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/filhoweuler/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/filhoweuler/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/filhoweuler/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/filhoweuler/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/filhoweuler/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/filhoweuler/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/filhoweuler/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/filhoweuler/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/filhoweuler/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/filhoweuler/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/filhoweuler/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/filhoweuler/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/filhoweuler/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/filhoweuler/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/filhoweuler/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/filhoweuler/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/filhoweuler/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/filhoweuler/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/filhoweuler/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/filhoweuler/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/filhoweuler/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/filhoweuler/nand2tetris/deployments", + "created_at": "2015-09-08T16:04:45Z", + "updated_at": "2015-09-08T17:53:10Z", + "pushed_at": "2015-09-08T18:58:11Z", + "git_url": "git://github.com/filhoweuler/nand2tetris.git", + "ssh_url": "git@github.com:filhoweuler/nand2tetris.git", + "clone_url": "https://github.com/filhoweuler/nand2tetris.git", + "svn_url": "https://github.com/filhoweuler/nand2tetris", + "homepage": null, + "size": 308, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 50825970, + "name": "nand2tetris", + "full_name": "awayz/nand2tetris", + "owner": { + "login": "awayz", + "id": 10144695, + "avatar_url": "https://avatars.githubusercontent.com/u/10144695?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/awayz", + "html_url": "https://github.com/awayz", + "followers_url": "https://api.github.com/users/awayz/followers", + "following_url": "https://api.github.com/users/awayz/following{/other_user}", + "gists_url": "https://api.github.com/users/awayz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/awayz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/awayz/subscriptions", + "organizations_url": "https://api.github.com/users/awayz/orgs", + "repos_url": "https://api.github.com/users/awayz/repos", + "events_url": "https://api.github.com/users/awayz/events{/privacy}", + "received_events_url": "https://api.github.com/users/awayz/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/awayz/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/awayz/nand2tetris", + "forks_url": "https://api.github.com/repos/awayz/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/awayz/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/awayz/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/awayz/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/awayz/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/awayz/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/awayz/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/awayz/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/awayz/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/awayz/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/awayz/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/awayz/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/awayz/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/awayz/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/awayz/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/awayz/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/awayz/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/awayz/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/awayz/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/awayz/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/awayz/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/awayz/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/awayz/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/awayz/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/awayz/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/awayz/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/awayz/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/awayz/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/awayz/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/awayz/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/awayz/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/awayz/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/awayz/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/awayz/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/awayz/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/awayz/nand2tetris/deployments", + "created_at": "2016-02-01T08:37:47Z", + "updated_at": "2016-02-03T04:57:32Z", + "pushed_at": "2016-02-23T15:03:07Z", + "git_url": "git://github.com/awayz/nand2tetris.git", + "ssh_url": "git@github.com:awayz/nand2tetris.git", + "clone_url": "https://github.com/awayz/nand2tetris.git", + "svn_url": "https://github.com/awayz/nand2tetris", + "homepage": null, + "size": 7409, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 9607745, + "name": "nand2tetris", + "full_name": "AaronRandall/nand2tetris", + "owner": { + "login": "AaronRandall", + "id": 2228462, + "avatar_url": "https://avatars.githubusercontent.com/u/2228462?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/AaronRandall", + "html_url": "https://github.com/AaronRandall", + "followers_url": "https://api.github.com/users/AaronRandall/followers", + "following_url": "https://api.github.com/users/AaronRandall/following{/other_user}", + "gists_url": "https://api.github.com/users/AaronRandall/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AaronRandall/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AaronRandall/subscriptions", + "organizations_url": "https://api.github.com/users/AaronRandall/orgs", + "repos_url": "https://api.github.com/users/AaronRandall/repos", + "events_url": "https://api.github.com/users/AaronRandall/events{/privacy}", + "received_events_url": "https://api.github.com/users/AaronRandall/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/AaronRandall/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/AaronRandall/nand2tetris", + "forks_url": "https://api.github.com/repos/AaronRandall/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/AaronRandall/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AaronRandall/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AaronRandall/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/AaronRandall/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/AaronRandall/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/AaronRandall/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/AaronRandall/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/AaronRandall/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/AaronRandall/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/AaronRandall/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AaronRandall/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AaronRandall/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AaronRandall/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AaronRandall/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AaronRandall/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/AaronRandall/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/AaronRandall/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/AaronRandall/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/AaronRandall/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/AaronRandall/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AaronRandall/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AaronRandall/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AaronRandall/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AaronRandall/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/AaronRandall/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AaronRandall/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/AaronRandall/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AaronRandall/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/AaronRandall/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/AaronRandall/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AaronRandall/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AaronRandall/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AaronRandall/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/AaronRandall/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/AaronRandall/nand2tetris/deployments", + "created_at": "2013-04-22T20:02:07Z", + "updated_at": "2016-04-05T07:34:01Z", + "pushed_at": "2016-04-05T07:33:25Z", + "git_url": "git://github.com/AaronRandall/nand2tetris.git", + "ssh_url": "git@github.com:AaronRandall/nand2tetris.git", + "clone_url": "https://github.com/AaronRandall/nand2tetris.git", + "svn_url": "https://github.com/AaronRandall/nand2tetris", + "homepage": null, + "size": 636, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 1, + "forks": 1, + "open_issues": 1, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 28212995, + "name": "nand2tetris", + "full_name": "bgx/nand2tetris", + "owner": { + "login": "bgx", + "id": 9850511, + "avatar_url": "https://avatars.githubusercontent.com/u/9850511?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bgx", + "html_url": "https://github.com/bgx", + "followers_url": "https://api.github.com/users/bgx/followers", + "following_url": "https://api.github.com/users/bgx/following{/other_user}", + "gists_url": "https://api.github.com/users/bgx/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bgx/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bgx/subscriptions", + "organizations_url": "https://api.github.com/users/bgx/orgs", + "repos_url": "https://api.github.com/users/bgx/repos", + "events_url": "https://api.github.com/users/bgx/events{/privacy}", + "received_events_url": "https://api.github.com/users/bgx/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bgx/nand2tetris", + "description": "Building a simple yet powerful computer system from the ground up. (Basic hardware platform + modern software hierarchy)", + "fork": false, + "url": "https://api.github.com/repos/bgx/nand2tetris", + "forks_url": "https://api.github.com/repos/bgx/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bgx/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bgx/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bgx/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bgx/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bgx/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bgx/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bgx/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bgx/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bgx/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bgx/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bgx/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bgx/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bgx/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bgx/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bgx/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bgx/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bgx/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bgx/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bgx/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bgx/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bgx/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bgx/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bgx/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bgx/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bgx/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bgx/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bgx/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bgx/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bgx/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bgx/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bgx/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bgx/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bgx/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bgx/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bgx/nand2tetris/deployments", + "created_at": "2014-12-19T03:42:45Z", + "updated_at": "2016-04-20T12:28:42Z", + "pushed_at": "2016-04-03T02:53:44Z", + "git_url": "git://github.com/bgx/nand2tetris.git", + "ssh_url": "git@github.com:bgx/nand2tetris.git", + "clone_url": "https://github.com/bgx/nand2tetris.git", + "svn_url": "https://github.com/bgx/nand2tetris", + "homepage": "", + "size": 1090, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 60416177, + "name": "nand2tetris", + "full_name": "leideng/nand2tetris", + "owner": { + "login": "leideng", + "id": 7011915, + "avatar_url": "https://avatars.githubusercontent.com/u/7011915?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/leideng", + "html_url": "https://github.com/leideng", + "followers_url": "https://api.github.com/users/leideng/followers", + "following_url": "https://api.github.com/users/leideng/following{/other_user}", + "gists_url": "https://api.github.com/users/leideng/gists{/gist_id}", + "starred_url": "https://api.github.com/users/leideng/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/leideng/subscriptions", + "organizations_url": "https://api.github.com/users/leideng/orgs", + "repos_url": "https://api.github.com/users/leideng/repos", + "events_url": "https://api.github.com/users/leideng/events{/privacy}", + "received_events_url": "https://api.github.com/users/leideng/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/leideng/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/leideng/nand2tetris", + "forks_url": "https://api.github.com/repos/leideng/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/leideng/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/leideng/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/leideng/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/leideng/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/leideng/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/leideng/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/leideng/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/leideng/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/leideng/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/leideng/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/leideng/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/leideng/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/leideng/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/leideng/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/leideng/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/leideng/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/leideng/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/leideng/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/leideng/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/leideng/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/leideng/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/leideng/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/leideng/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/leideng/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/leideng/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/leideng/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/leideng/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/leideng/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/leideng/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/leideng/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/leideng/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/leideng/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/leideng/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/leideng/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/leideng/nand2tetris/deployments", + "created_at": "2016-06-04T15:13:35Z", + "updated_at": "2016-06-11T07:00:12Z", + "pushed_at": "2016-06-19T05:38:07Z", + "git_url": "git://github.com/leideng/nand2tetris.git", + "ssh_url": "git@github.com:leideng/nand2tetris.git", + "clone_url": "https://github.com/leideng/nand2tetris.git", + "svn_url": "https://github.com/leideng/nand2tetris", + "homepage": null, + "size": 729, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 42820897, + "name": "nand2tetris", + "full_name": "TheVainBoy/nand2tetris", + "owner": { + "login": "TheVainBoy", + "id": 14372674, + "avatar_url": "https://avatars.githubusercontent.com/u/14372674?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/TheVainBoy", + "html_url": "https://github.com/TheVainBoy", + "followers_url": "https://api.github.com/users/TheVainBoy/followers", + "following_url": "https://api.github.com/users/TheVainBoy/following{/other_user}", + "gists_url": "https://api.github.com/users/TheVainBoy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TheVainBoy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TheVainBoy/subscriptions", + "organizations_url": "https://api.github.com/users/TheVainBoy/orgs", + "repos_url": "https://api.github.com/users/TheVainBoy/repos", + "events_url": "https://api.github.com/users/TheVainBoy/events{/privacy}", + "received_events_url": "https://api.github.com/users/TheVainBoy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/TheVainBoy/nand2tetris", + "description": "Exercises from The Elements of Computer Systems", + "fork": false, + "url": "https://api.github.com/repos/TheVainBoy/nand2tetris", + "forks_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/TheVainBoy/nand2tetris/deployments", + "created_at": "2015-09-20T16:49:44Z", + "updated_at": "2016-03-04T18:08:41Z", + "pushed_at": "2016-05-26T19:14:38Z", + "git_url": "git://github.com/TheVainBoy/nand2tetris.git", + "ssh_url": "git@github.com:TheVainBoy/nand2tetris.git", + "clone_url": "https://github.com/TheVainBoy/nand2tetris.git", + "svn_url": "https://github.com/TheVainBoy/nand2tetris", + "homepage": null, + "size": 1062, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.255108 + }, + { + "id": 33394335, + "name": "my_nand2tetris", + "full_name": "snufkon/my_nand2tetris", + "owner": { + "login": "snufkon", + "id": 490414, + "avatar_url": "https://avatars.githubusercontent.com/u/490414?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/snufkon", + "html_url": "https://github.com/snufkon", + "followers_url": "https://api.github.com/users/snufkon/followers", + "following_url": "https://api.github.com/users/snufkon/following{/other_user}", + "gists_url": "https://api.github.com/users/snufkon/gists{/gist_id}", + "starred_url": "https://api.github.com/users/snufkon/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/snufkon/subscriptions", + "organizations_url": "https://api.github.com/users/snufkon/orgs", + "repos_url": "https://api.github.com/users/snufkon/repos", + "events_url": "https://api.github.com/users/snufkon/events{/privacy}", + "received_events_url": "https://api.github.com/users/snufkon/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/snufkon/my_nand2tetris", + "description": "「コンピュータシステムの理論と実装」演習用リポジトリ", + "fork": false, + "url": "https://api.github.com/repos/snufkon/my_nand2tetris", + "forks_url": "https://api.github.com/repos/snufkon/my_nand2tetris/forks", + "keys_url": "https://api.github.com/repos/snufkon/my_nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/snufkon/my_nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/snufkon/my_nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/snufkon/my_nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/snufkon/my_nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/snufkon/my_nand2tetris/events", + "assignees_url": "https://api.github.com/repos/snufkon/my_nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/snufkon/my_nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/snufkon/my_nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/snufkon/my_nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/snufkon/my_nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/snufkon/my_nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/snufkon/my_nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/snufkon/my_nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/snufkon/my_nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/snufkon/my_nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/snufkon/my_nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/snufkon/my_nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/snufkon/my_nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/snufkon/my_nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/snufkon/my_nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/snufkon/my_nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/snufkon/my_nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/snufkon/my_nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/snufkon/my_nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/snufkon/my_nand2tetris/merges", + "archive_url": "https://api.github.com/repos/snufkon/my_nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/snufkon/my_nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/snufkon/my_nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/snufkon/my_nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/snufkon/my_nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/snufkon/my_nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/snufkon/my_nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/snufkon/my_nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/snufkon/my_nand2tetris/deployments", + "created_at": "2015-04-04T04:34:19Z", + "updated_at": "2015-10-03T13:48:48Z", + "pushed_at": "2015-08-16T06:49:12Z", + "git_url": "git://github.com/snufkon/my_nand2tetris.git", + "ssh_url": "git@github.com:snufkon/my_nand2tetris.git", + "clone_url": "https://github.com/snufkon/my_nand2tetris.git", + "svn_url": "https://github.com/snufkon/my_nand2tetris", + "homepage": null, + "size": 2636, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.231357 + }, + { + "id": 39799066, + "name": "nand2tetris", + "full_name": "RickyBoyd/nand2tetris", + "owner": { + "login": "RickyBoyd", + "id": 5221289, + "avatar_url": "https://avatars.githubusercontent.com/u/5221289?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/RickyBoyd", + "html_url": "https://github.com/RickyBoyd", + "followers_url": "https://api.github.com/users/RickyBoyd/followers", + "following_url": "https://api.github.com/users/RickyBoyd/following{/other_user}", + "gists_url": "https://api.github.com/users/RickyBoyd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/RickyBoyd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/RickyBoyd/subscriptions", + "organizations_url": "https://api.github.com/users/RickyBoyd/orgs", + "repos_url": "https://api.github.com/users/RickyBoyd/repos", + "events_url": "https://api.github.com/users/RickyBoyd/events{/privacy}", + "received_events_url": "https://api.github.com/users/RickyBoyd/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/RickyBoyd/nand2tetris", + "description": "Building a computer out of a hardware simulation language, making an assembler for the computer and then a simple OS.", + "fork": false, + "url": "https://api.github.com/repos/RickyBoyd/nand2tetris", + "forks_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/RickyBoyd/nand2tetris/deployments", + "created_at": "2015-07-27T21:33:58Z", + "updated_at": "2016-02-14T02:06:41Z", + "pushed_at": "2015-08-11T18:11:12Z", + "git_url": "git://github.com/RickyBoyd/nand2tetris.git", + "ssh_url": "git@github.com:RickyBoyd/nand2tetris.git", + "clone_url": "https://github.com/RickyBoyd/nand2tetris.git", + "svn_url": "https://github.com/RickyBoyd/nand2tetris", + "homepage": null, + "size": 372, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.231357 + }, + { + "id": 53402249, + "name": "nand2tetris", + "full_name": "shahamran/nand2tetris", + "owner": { + "login": "shahamran", + "id": 10813499, + "avatar_url": "https://avatars.githubusercontent.com/u/10813499?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/shahamran", + "html_url": "https://github.com/shahamran", + "followers_url": "https://api.github.com/users/shahamran/followers", + "following_url": "https://api.github.com/users/shahamran/following{/other_user}", + "gists_url": "https://api.github.com/users/shahamran/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shahamran/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shahamran/subscriptions", + "organizations_url": "https://api.github.com/users/shahamran/orgs", + "repos_url": "https://api.github.com/users/shahamran/repos", + "events_url": "https://api.github.com/users/shahamran/events{/privacy}", + "received_events_url": "https://api.github.com/users/shahamran/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/shahamran/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/shahamran/nand2tetris", + "forks_url": "https://api.github.com/repos/shahamran/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/shahamran/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/shahamran/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/shahamran/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/shahamran/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/shahamran/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/shahamran/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/shahamran/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/shahamran/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/shahamran/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/shahamran/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/shahamran/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/shahamran/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/shahamran/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/shahamran/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/shahamran/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/shahamran/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/shahamran/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/shahamran/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/shahamran/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/shahamran/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/shahamran/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/shahamran/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/shahamran/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/shahamran/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/shahamran/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/shahamran/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/shahamran/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/shahamran/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/shahamran/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/shahamran/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/shahamran/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/shahamran/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/shahamran/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/shahamran/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/shahamran/nand2tetris/deployments", + "created_at": "2016-03-08T10:05:57Z", + "updated_at": "2016-05-24T12:03:07Z", + "pushed_at": "2016-06-20T09:49:38Z", + "git_url": "git://github.com/shahamran/nand2tetris.git", + "ssh_url": "git@github.com:shahamran/nand2tetris.git", + "clone_url": "https://github.com/shahamran/nand2tetris.git", + "svn_url": "https://github.com/shahamran/nand2tetris", + "homepage": null, + "size": 1863, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.231357 + }, + { + "id": 18867463, + "name": "nand2tetris", + "full_name": "mmmries/nand2tetris", + "owner": { + "login": "mmmries", + "id": 80008, + "avatar_url": "https://avatars.githubusercontent.com/u/80008?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mmmries", + "html_url": "https://github.com/mmmries", + "followers_url": "https://api.github.com/users/mmmries/followers", + "following_url": "https://api.github.com/users/mmmries/following{/other_user}", + "gists_url": "https://api.github.com/users/mmmries/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mmmries/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mmmries/subscriptions", + "organizations_url": "https://api.github.com/users/mmmries/orgs", + "repos_url": "https://api.github.com/users/mmmries/repos", + "events_url": "https://api.github.com/users/mmmries/events{/privacy}", + "received_events_url": "https://api.github.com/users/mmmries/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mmmries/nand2tetris", + "description": "my solutions for the nand2tetris course projects", + "fork": false, + "url": "https://api.github.com/repos/mmmries/nand2tetris", + "forks_url": "https://api.github.com/repos/mmmries/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mmmries/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mmmries/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mmmries/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mmmries/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mmmries/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mmmries/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mmmries/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mmmries/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mmmries/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mmmries/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mmmries/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mmmries/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mmmries/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mmmries/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mmmries/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mmmries/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mmmries/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mmmries/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mmmries/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mmmries/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mmmries/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mmmries/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mmmries/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mmmries/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mmmries/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mmmries/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mmmries/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mmmries/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mmmries/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mmmries/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mmmries/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mmmries/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mmmries/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mmmries/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mmmries/nand2tetris/deployments", + "created_at": "2014-04-17T05:18:05Z", + "updated_at": "2015-05-09T15:27:02Z", + "pushed_at": "2014-10-04T20:11:24Z", + "git_url": "git://github.com/mmmries/nand2tetris.git", + "ssh_url": "git@github.com:mmmries/nand2tetris.git", + "clone_url": "https://github.com/mmmries/nand2tetris.git", + "svn_url": "https://github.com/mmmries/nand2tetris", + "homepage": null, + "size": 772, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.2283893 + }, + { + "id": 35750960, + "name": "Nand2Tetris", + "full_name": "shunsuke227ono/Nand2Tetris", + "owner": { + "login": "shunsuke227ono", + "id": 7357864, + "avatar_url": "https://avatars.githubusercontent.com/u/7357864?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/shunsuke227ono", + "html_url": "https://github.com/shunsuke227ono", + "followers_url": "https://api.github.com/users/shunsuke227ono/followers", + "following_url": "https://api.github.com/users/shunsuke227ono/following{/other_user}", + "gists_url": "https://api.github.com/users/shunsuke227ono/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shunsuke227ono/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shunsuke227ono/subscriptions", + "organizations_url": "https://api.github.com/users/shunsuke227ono/orgs", + "repos_url": "https://api.github.com/users/shunsuke227ono/repos", + "events_url": "https://api.github.com/users/shunsuke227ono/events{/privacy}", + "received_events_url": "https://api.github.com/users/shunsuke227ono/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/shunsuke227ono/Nand2Tetris", + "description": "Learn computer system with a course provided by MIT http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris", + "forks_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/shunsuke227ono/Nand2Tetris/deployments", + "created_at": "2015-05-17T03:53:10Z", + "updated_at": "2015-09-21T11:34:50Z", + "pushed_at": "2015-06-07T13:57:47Z", + "git_url": "git://github.com/shunsuke227ono/Nand2Tetris.git", + "ssh_url": "git@github.com:shunsuke227ono/Nand2Tetris.git", + "clone_url": "https://github.com/shunsuke227ono/Nand2Tetris.git", + "svn_url": "https://github.com/shunsuke227ono/Nand2Tetris", + "homepage": "", + "size": 1996, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.2283893 + }, + { + "id": 9521411, + "name": "nand2tetris", + "full_name": "jtdowney/nand2tetris", + "owner": { + "login": "jtdowney", + "id": 44654, + "avatar_url": "https://avatars.githubusercontent.com/u/44654?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jtdowney", + "html_url": "https://github.com/jtdowney", + "followers_url": "https://api.github.com/users/jtdowney/followers", + "following_url": "https://api.github.com/users/jtdowney/following{/other_user}", + "gists_url": "https://api.github.com/users/jtdowney/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jtdowney/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jtdowney/subscriptions", + "organizations_url": "https://api.github.com/users/jtdowney/orgs", + "repos_url": "https://api.github.com/users/jtdowney/repos", + "events_url": "https://api.github.com/users/jtdowney/events{/privacy}", + "received_events_url": "https://api.github.com/users/jtdowney/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jtdowney/nand2tetris", + "description": "My solutions to the projects in The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/jtdowney/nand2tetris", + "forks_url": "https://api.github.com/repos/jtdowney/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jtdowney/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jtdowney/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jtdowney/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jtdowney/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jtdowney/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jtdowney/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jtdowney/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jtdowney/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jtdowney/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jtdowney/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jtdowney/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jtdowney/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jtdowney/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jtdowney/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jtdowney/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jtdowney/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jtdowney/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jtdowney/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jtdowney/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jtdowney/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jtdowney/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jtdowney/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jtdowney/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jtdowney/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jtdowney/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jtdowney/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jtdowney/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jtdowney/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jtdowney/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jtdowney/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jtdowney/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jtdowney/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jtdowney/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jtdowney/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jtdowney/nand2tetris/deployments", + "created_at": "2013-04-18T12:44:58Z", + "updated_at": "2016-03-28T15:23:12Z", + "pushed_at": "2013-04-18T12:47:54Z", + "git_url": "git://github.com/jtdowney/nand2tetris.git", + "ssh_url": "git@github.com:jtdowney/nand2tetris.git", + "clone_url": "https://github.com/jtdowney/nand2tetris.git", + "svn_url": "https://github.com/jtdowney/nand2tetris", + "homepage": null, + "size": 340, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.2283893 + }, + { + "id": 15288509, + "name": "nand2tetris", + "full_name": "prec/nand2tetris", + "owner": { + "login": "prec", + "id": 2953301, + "avatar_url": "https://avatars.githubusercontent.com/u/2953301?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/prec", + "html_url": "https://github.com/prec", + "followers_url": "https://api.github.com/users/prec/followers", + "following_url": "https://api.github.com/users/prec/following{/other_user}", + "gists_url": "https://api.github.com/users/prec/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prec/subscriptions", + "organizations_url": "https://api.github.com/users/prec/orgs", + "repos_url": "https://api.github.com/users/prec/repos", + "events_url": "https://api.github.com/users/prec/events{/privacy}", + "received_events_url": "https://api.github.com/users/prec/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/prec/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/prec/nand2tetris", + "forks_url": "https://api.github.com/repos/prec/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/prec/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/prec/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/prec/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/prec/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/prec/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/prec/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/prec/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/prec/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/prec/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/prec/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/prec/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/prec/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/prec/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/prec/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/prec/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/prec/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/prec/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/prec/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/prec/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/prec/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/prec/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/prec/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/prec/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/prec/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/prec/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/prec/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/prec/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/prec/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/prec/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/prec/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/prec/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/prec/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/prec/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/prec/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/prec/nand2tetris/deployments", + "created_at": "2013-12-18T16:39:16Z", + "updated_at": "2014-01-13T04:22:42Z", + "pushed_at": "2014-01-13T04:22:42Z", + "git_url": "git://github.com/prec/nand2tetris.git", + "ssh_url": "git@github.com:prec/nand2tetris.git", + "clone_url": "https://github.com/prec/nand2tetris.git", + "svn_url": "https://github.com/prec/nand2tetris", + "homepage": null, + "size": 416, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 31266055, + "name": "nand2tetris", + "full_name": "josephahn/nand2tetris", + "owner": { + "login": "josephahn", + "id": 4207073, + "avatar_url": "https://avatars.githubusercontent.com/u/4207073?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/josephahn", + "html_url": "https://github.com/josephahn", + "followers_url": "https://api.github.com/users/josephahn/followers", + "following_url": "https://api.github.com/users/josephahn/following{/other_user}", + "gists_url": "https://api.github.com/users/josephahn/gists{/gist_id}", + "starred_url": "https://api.github.com/users/josephahn/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/josephahn/subscriptions", + "organizations_url": "https://api.github.com/users/josephahn/orgs", + "repos_url": "https://api.github.com/users/josephahn/repos", + "events_url": "https://api.github.com/users/josephahn/events{/privacy}", + "received_events_url": "https://api.github.com/users/josephahn/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/josephahn/nand2tetris", + "description": "nand2tetris projects", + "fork": false, + "url": "https://api.github.com/repos/josephahn/nand2tetris", + "forks_url": "https://api.github.com/repos/josephahn/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/josephahn/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/josephahn/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/josephahn/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/josephahn/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/josephahn/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/josephahn/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/josephahn/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/josephahn/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/josephahn/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/josephahn/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/josephahn/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/josephahn/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/josephahn/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/josephahn/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/josephahn/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/josephahn/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/josephahn/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/josephahn/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/josephahn/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/josephahn/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/josephahn/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/josephahn/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/josephahn/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/josephahn/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/josephahn/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/josephahn/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/josephahn/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/josephahn/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/josephahn/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/josephahn/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/josephahn/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/josephahn/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/josephahn/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/josephahn/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/josephahn/nand2tetris/deployments", + "created_at": "2015-02-24T15:20:23Z", + "updated_at": "2015-03-02T00:13:39Z", + "pushed_at": "2015-03-02T00:13:39Z", + "git_url": "git://github.com/josephahn/nand2tetris.git", + "ssh_url": "git@github.com:josephahn/nand2tetris.git", + "clone_url": "https://github.com/josephahn/nand2tetris.git", + "svn_url": "https://github.com/josephahn/nand2tetris", + "homepage": "", + "size": 416, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 50947153, + "name": "nand-to-tetris", + "full_name": "grugway/nand-to-tetris", + "owner": { + "login": "grugway", + "id": 8777674, + "avatar_url": "https://avatars.githubusercontent.com/u/8777674?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/grugway", + "html_url": "https://github.com/grugway", + "followers_url": "https://api.github.com/users/grugway/followers", + "following_url": "https://api.github.com/users/grugway/following{/other_user}", + "gists_url": "https://api.github.com/users/grugway/gists{/gist_id}", + "starred_url": "https://api.github.com/users/grugway/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/grugway/subscriptions", + "organizations_url": "https://api.github.com/users/grugway/orgs", + "repos_url": "https://api.github.com/users/grugway/repos", + "events_url": "https://api.github.com/users/grugway/events{/privacy}", + "received_events_url": "https://api.github.com/users/grugway/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/grugway/nand-to-tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/grugway/nand-to-tetris", + "forks_url": "https://api.github.com/repos/grugway/nand-to-tetris/forks", + "keys_url": "https://api.github.com/repos/grugway/nand-to-tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/grugway/nand-to-tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/grugway/nand-to-tetris/teams", + "hooks_url": "https://api.github.com/repos/grugway/nand-to-tetris/hooks", + "issue_events_url": "https://api.github.com/repos/grugway/nand-to-tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/grugway/nand-to-tetris/events", + "assignees_url": "https://api.github.com/repos/grugway/nand-to-tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/grugway/nand-to-tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/grugway/nand-to-tetris/tags", + "blobs_url": "https://api.github.com/repos/grugway/nand-to-tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/grugway/nand-to-tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/grugway/nand-to-tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/grugway/nand-to-tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/grugway/nand-to-tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/grugway/nand-to-tetris/languages", + "stargazers_url": "https://api.github.com/repos/grugway/nand-to-tetris/stargazers", + "contributors_url": "https://api.github.com/repos/grugway/nand-to-tetris/contributors", + "subscribers_url": "https://api.github.com/repos/grugway/nand-to-tetris/subscribers", + "subscription_url": "https://api.github.com/repos/grugway/nand-to-tetris/subscription", + "commits_url": "https://api.github.com/repos/grugway/nand-to-tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/grugway/nand-to-tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/grugway/nand-to-tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/grugway/nand-to-tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/grugway/nand-to-tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/grugway/nand-to-tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/grugway/nand-to-tetris/merges", + "archive_url": "https://api.github.com/repos/grugway/nand-to-tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/grugway/nand-to-tetris/downloads", + "issues_url": "https://api.github.com/repos/grugway/nand-to-tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/grugway/nand-to-tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/grugway/nand-to-tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/grugway/nand-to-tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/grugway/nand-to-tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/grugway/nand-to-tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/grugway/nand-to-tetris/deployments", + "created_at": "2016-02-02T19:47:48Z", + "updated_at": "2016-02-05T08:57:03Z", + "pushed_at": "2016-02-09T07:57:22Z", + "git_url": "git://github.com/grugway/nand-to-tetris.git", + "ssh_url": "git@github.com:grugway/nand-to-tetris.git", + "clone_url": "https://github.com/grugway/nand-to-tetris.git", + "svn_url": "https://github.com/grugway/nand-to-tetris", + "homepage": null, + "size": 64709, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 52996494, + "name": "Nand2Tetris", + "full_name": "cgalbiati/Nand2Tetris", + "owner": { + "login": "cgalbiati", + "id": 12814449, + "avatar_url": "https://avatars.githubusercontent.com/u/12814449?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cgalbiati", + "html_url": "https://github.com/cgalbiati", + "followers_url": "https://api.github.com/users/cgalbiati/followers", + "following_url": "https://api.github.com/users/cgalbiati/following{/other_user}", + "gists_url": "https://api.github.com/users/cgalbiati/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cgalbiati/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cgalbiati/subscriptions", + "organizations_url": "https://api.github.com/users/cgalbiati/orgs", + "repos_url": "https://api.github.com/users/cgalbiati/repos", + "events_url": "https://api.github.com/users/cgalbiati/events{/privacy}", + "received_events_url": "https://api.github.com/users/cgalbiati/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cgalbiati/Nand2Tetris", + "description": "Repository of my work for \"The Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/cgalbiati/Nand2Tetris", + "forks_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cgalbiati/Nand2Tetris/deployments", + "created_at": "2016-03-02T21:07:01Z", + "updated_at": "2016-04-23T03:32:50Z", + "pushed_at": "2016-04-12T01:27:51Z", + "git_url": "git://github.com/cgalbiati/Nand2Tetris.git", + "ssh_url": "git@github.com:cgalbiati/Nand2Tetris.git", + "clone_url": "https://github.com/cgalbiati/Nand2Tetris.git", + "svn_url": "https://github.com/cgalbiati/Nand2Tetris", + "homepage": "", + "size": 527, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 38170270, + "name": "Nand2Tetris", + "full_name": "Kourchenko/Nand2Tetris", + "owner": { + "login": "Kourchenko", + "id": 5885241, + "avatar_url": "https://avatars.githubusercontent.com/u/5885241?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Kourchenko", + "html_url": "https://github.com/Kourchenko", + "followers_url": "https://api.github.com/users/Kourchenko/followers", + "following_url": "https://api.github.com/users/Kourchenko/following{/other_user}", + "gists_url": "https://api.github.com/users/Kourchenko/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Kourchenko/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kourchenko/subscriptions", + "organizations_url": "https://api.github.com/users/Kourchenko/orgs", + "repos_url": "https://api.github.com/users/Kourchenko/repos", + "events_url": "https://api.github.com/users/Kourchenko/events{/privacy}", + "received_events_url": "https://api.github.com/users/Kourchenko/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Kourchenko/Nand2Tetris", + "description": "Logic Gates for Toy-Compiler: JackCompiler", + "fork": false, + "url": "https://api.github.com/repos/Kourchenko/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Kourchenko/Nand2Tetris/deployments", + "created_at": "2015-06-27T18:15:41Z", + "updated_at": "2016-04-29T06:31:19Z", + "pushed_at": "2015-12-16T23:22:43Z", + "git_url": "git://github.com/Kourchenko/Nand2Tetris.git", + "ssh_url": "git@github.com:Kourchenko/Nand2Tetris.git", + "clone_url": "https://github.com/Kourchenko/Nand2Tetris.git", + "svn_url": "https://github.com/Kourchenko/Nand2Tetris", + "homepage": "", + "size": 545, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 36626983, + "name": "n2t-hack-assember", + "full_name": "werelax/n2t-hack-assember", + "owner": { + "login": "werelax", + "id": 774672, + "avatar_url": "https://avatars.githubusercontent.com/u/774672?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/werelax", + "html_url": "https://github.com/werelax", + "followers_url": "https://api.github.com/users/werelax/followers", + "following_url": "https://api.github.com/users/werelax/following{/other_user}", + "gists_url": "https://api.github.com/users/werelax/gists{/gist_id}", + "starred_url": "https://api.github.com/users/werelax/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/werelax/subscriptions", + "organizations_url": "https://api.github.com/users/werelax/orgs", + "repos_url": "https://api.github.com/users/werelax/repos", + "events_url": "https://api.github.com/users/werelax/events{/privacy}", + "received_events_url": "https://api.github.com/users/werelax/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/werelax/n2t-hack-assember", + "description": "Assembler for the simple symbolic language of the \"Hack\" computer defined in the Nand 2 Tetris course from coursera.com. In Emacs Lisp :)", + "fork": false, + "url": "https://api.github.com/repos/werelax/n2t-hack-assember", + "forks_url": "https://api.github.com/repos/werelax/n2t-hack-assember/forks", + "keys_url": "https://api.github.com/repos/werelax/n2t-hack-assember/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/werelax/n2t-hack-assember/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/werelax/n2t-hack-assember/teams", + "hooks_url": "https://api.github.com/repos/werelax/n2t-hack-assember/hooks", + "issue_events_url": "https://api.github.com/repos/werelax/n2t-hack-assember/issues/events{/number}", + "events_url": "https://api.github.com/repos/werelax/n2t-hack-assember/events", + "assignees_url": "https://api.github.com/repos/werelax/n2t-hack-assember/assignees{/user}", + "branches_url": "https://api.github.com/repos/werelax/n2t-hack-assember/branches{/branch}", + "tags_url": "https://api.github.com/repos/werelax/n2t-hack-assember/tags", + "blobs_url": "https://api.github.com/repos/werelax/n2t-hack-assember/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/werelax/n2t-hack-assember/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/werelax/n2t-hack-assember/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/werelax/n2t-hack-assember/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/werelax/n2t-hack-assember/statuses/{sha}", + "languages_url": "https://api.github.com/repos/werelax/n2t-hack-assember/languages", + "stargazers_url": "https://api.github.com/repos/werelax/n2t-hack-assember/stargazers", + "contributors_url": "https://api.github.com/repos/werelax/n2t-hack-assember/contributors", + "subscribers_url": "https://api.github.com/repos/werelax/n2t-hack-assember/subscribers", + "subscription_url": "https://api.github.com/repos/werelax/n2t-hack-assember/subscription", + "commits_url": "https://api.github.com/repos/werelax/n2t-hack-assember/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/werelax/n2t-hack-assember/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/werelax/n2t-hack-assember/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/werelax/n2t-hack-assember/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/werelax/n2t-hack-assember/contents/{+path}", + "compare_url": "https://api.github.com/repos/werelax/n2t-hack-assember/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/werelax/n2t-hack-assember/merges", + "archive_url": "https://api.github.com/repos/werelax/n2t-hack-assember/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/werelax/n2t-hack-assember/downloads", + "issues_url": "https://api.github.com/repos/werelax/n2t-hack-assember/issues{/number}", + "pulls_url": "https://api.github.com/repos/werelax/n2t-hack-assember/pulls{/number}", + "milestones_url": "https://api.github.com/repos/werelax/n2t-hack-assember/milestones{/number}", + "notifications_url": "https://api.github.com/repos/werelax/n2t-hack-assember/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/werelax/n2t-hack-assember/labels{/name}", + "releases_url": "https://api.github.com/repos/werelax/n2t-hack-assember/releases{/id}", + "deployments_url": "https://api.github.com/repos/werelax/n2t-hack-assember/deployments", + "created_at": "2015-05-31T23:32:07Z", + "updated_at": "2015-06-01T12:41:27Z", + "pushed_at": "2015-05-31T23:33:12Z", + "git_url": "git://github.com/werelax/n2t-hack-assember.git", + "ssh_url": "git@github.com:werelax/n2t-hack-assember.git", + "clone_url": "https://github.com/werelax/n2t-hack-assember.git", + "svn_url": "https://github.com/werelax/n2t-hack-assember", + "homepage": null, + "size": 164, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master", + "score": 2.5641851 + }, + { + "id": 34019086, + "name": "Tetris", + "full_name": "talbor49/Tetris", + "owner": { + "login": "talbor49", + "id": 9658850, + "avatar_url": "https://avatars.githubusercontent.com/u/9658850?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/talbor49", + "html_url": "https://github.com/talbor49", + "followers_url": "https://api.github.com/users/talbor49/followers", + "following_url": "https://api.github.com/users/talbor49/following{/other_user}", + "gists_url": "https://api.github.com/users/talbor49/gists{/gist_id}", + "starred_url": "https://api.github.com/users/talbor49/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/talbor49/subscriptions", + "organizations_url": "https://api.github.com/users/talbor49/orgs", + "repos_url": "https://api.github.com/users/talbor49/repos", + "events_url": "https://api.github.com/users/talbor49/events{/privacy}", + "received_events_url": "https://api.github.com/users/talbor49/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/talbor49/Tetris", + "description": "\"Tetris\" game clone written completely in 32 bit assembly with the Windows 32 API", + "fork": false, + "url": "https://api.github.com/repos/talbor49/Tetris", + "forks_url": "https://api.github.com/repos/talbor49/Tetris/forks", + "keys_url": "https://api.github.com/repos/talbor49/Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/talbor49/Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/talbor49/Tetris/teams", + "hooks_url": "https://api.github.com/repos/talbor49/Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/talbor49/Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/talbor49/Tetris/events", + "assignees_url": "https://api.github.com/repos/talbor49/Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/talbor49/Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/talbor49/Tetris/tags", + "blobs_url": "https://api.github.com/repos/talbor49/Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/talbor49/Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/talbor49/Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/talbor49/Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/talbor49/Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/talbor49/Tetris/languages", + "stargazers_url": "https://api.github.com/repos/talbor49/Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/talbor49/Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/talbor49/Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/talbor49/Tetris/subscription", + "commits_url": "https://api.github.com/repos/talbor49/Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/talbor49/Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/talbor49/Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/talbor49/Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/talbor49/Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/talbor49/Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/talbor49/Tetris/merges", + "archive_url": "https://api.github.com/repos/talbor49/Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/talbor49/Tetris/downloads", + "issues_url": "https://api.github.com/repos/talbor49/Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/talbor49/Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/talbor49/Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/talbor49/Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/talbor49/Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/talbor49/Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/talbor49/Tetris/deployments", + "created_at": "2015-04-15T21:16:12Z", + "updated_at": "2015-05-29T17:20:04Z", + "pushed_at": "2015-06-09T21:41:06Z", + "git_url": "git://github.com/talbor49/Tetris.git", + "ssh_url": "git@github.com:talbor49/Tetris.git", + "clone_url": "https://github.com/talbor49/Tetris.git", + "svn_url": "https://github.com/talbor49/Tetris", + "homepage": null, + "size": 158152, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 9.48042 + }, + { + "id": 48014686, + "name": "Tetris", + "full_name": "Mashakal/Tetris", + "owner": { + "login": "Mashakal", + "id": 11655107, + "avatar_url": "https://avatars.githubusercontent.com/u/11655107?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Mashakal", + "html_url": "https://github.com/Mashakal", + "followers_url": "https://api.github.com/users/Mashakal/followers", + "following_url": "https://api.github.com/users/Mashakal/following{/other_user}", + "gists_url": "https://api.github.com/users/Mashakal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mashakal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mashakal/subscriptions", + "organizations_url": "https://api.github.com/users/Mashakal/orgs", + "repos_url": "https://api.github.com/users/Mashakal/repos", + "events_url": "https://api.github.com/users/Mashakal/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mashakal/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Mashakal/Tetris", + "description": "Tetris - 16 bit x86 Assembly style. I actually converted this code into an OS and have it saved on a thumb-drive.", + "fork": false, + "url": "https://api.github.com/repos/Mashakal/Tetris", + "forks_url": "https://api.github.com/repos/Mashakal/Tetris/forks", + "keys_url": "https://api.github.com/repos/Mashakal/Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Mashakal/Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Mashakal/Tetris/teams", + "hooks_url": "https://api.github.com/repos/Mashakal/Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Mashakal/Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Mashakal/Tetris/events", + "assignees_url": "https://api.github.com/repos/Mashakal/Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Mashakal/Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Mashakal/Tetris/tags", + "blobs_url": "https://api.github.com/repos/Mashakal/Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Mashakal/Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Mashakal/Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Mashakal/Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Mashakal/Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Mashakal/Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Mashakal/Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Mashakal/Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Mashakal/Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Mashakal/Tetris/subscription", + "commits_url": "https://api.github.com/repos/Mashakal/Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Mashakal/Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Mashakal/Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Mashakal/Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Mashakal/Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Mashakal/Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Mashakal/Tetris/merges", + "archive_url": "https://api.github.com/repos/Mashakal/Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Mashakal/Tetris/downloads", + "issues_url": "https://api.github.com/repos/Mashakal/Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Mashakal/Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Mashakal/Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Mashakal/Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Mashakal/Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Mashakal/Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Mashakal/Tetris/deployments", + "created_at": "2015-12-15T02:31:35Z", + "updated_at": "2015-12-15T02:40:09Z", + "pushed_at": "2015-12-15T02:40:08Z", + "git_url": "git://github.com/Mashakal/Tetris.git", + "ssh_url": "git@github.com:Mashakal/Tetris.git", + "clone_url": "https://github.com/Mashakal/Tetris.git", + "svn_url": "https://github.com/Mashakal/Tetris", + "homepage": null, + "size": 6, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 9.480347 + }, + { + "id": 59409127, + "name": "tetris", + "full_name": "SvalovaNastya/tetris", + "owner": { + "login": "SvalovaNastya", + "id": 6783533, + "avatar_url": "https://avatars.githubusercontent.com/u/6783533?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/SvalovaNastya", + "html_url": "https://github.com/SvalovaNastya", + "followers_url": "https://api.github.com/users/SvalovaNastya/followers", + "following_url": "https://api.github.com/users/SvalovaNastya/following{/other_user}", + "gists_url": "https://api.github.com/users/SvalovaNastya/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SvalovaNastya/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SvalovaNastya/subscriptions", + "organizations_url": "https://api.github.com/users/SvalovaNastya/orgs", + "repos_url": "https://api.github.com/users/SvalovaNastya/repos", + "events_url": "https://api.github.com/users/SvalovaNastya/events{/privacy}", + "received_events_url": "https://api.github.com/users/SvalovaNastya/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/SvalovaNastya/tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/SvalovaNastya/tetris", + "forks_url": "https://api.github.com/repos/SvalovaNastya/tetris/forks", + "keys_url": "https://api.github.com/repos/SvalovaNastya/tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SvalovaNastya/tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SvalovaNastya/tetris/teams", + "hooks_url": "https://api.github.com/repos/SvalovaNastya/tetris/hooks", + "issue_events_url": "https://api.github.com/repos/SvalovaNastya/tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/SvalovaNastya/tetris/events", + "assignees_url": "https://api.github.com/repos/SvalovaNastya/tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/SvalovaNastya/tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/SvalovaNastya/tetris/tags", + "blobs_url": "https://api.github.com/repos/SvalovaNastya/tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SvalovaNastya/tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SvalovaNastya/tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SvalovaNastya/tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SvalovaNastya/tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SvalovaNastya/tetris/languages", + "stargazers_url": "https://api.github.com/repos/SvalovaNastya/tetris/stargazers", + "contributors_url": "https://api.github.com/repos/SvalovaNastya/tetris/contributors", + "subscribers_url": "https://api.github.com/repos/SvalovaNastya/tetris/subscribers", + "subscription_url": "https://api.github.com/repos/SvalovaNastya/tetris/subscription", + "commits_url": "https://api.github.com/repos/SvalovaNastya/tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SvalovaNastya/tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SvalovaNastya/tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SvalovaNastya/tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SvalovaNastya/tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/SvalovaNastya/tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SvalovaNastya/tetris/merges", + "archive_url": "https://api.github.com/repos/SvalovaNastya/tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SvalovaNastya/tetris/downloads", + "issues_url": "https://api.github.com/repos/SvalovaNastya/tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/SvalovaNastya/tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SvalovaNastya/tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SvalovaNastya/tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SvalovaNastya/tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/SvalovaNastya/tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/SvalovaNastya/tetris/deployments", + "created_at": "2016-05-22T11:37:57Z", + "updated_at": "2016-05-22T11:40:44Z", + "pushed_at": "2016-05-25T14:20:13Z", + "git_url": "git://github.com/SvalovaNastya/tetris.git", + "ssh_url": "git@github.com:SvalovaNastya/tetris.git", + "clone_url": "https://github.com/SvalovaNastya/tetris.git", + "svn_url": "https://github.com/SvalovaNastya/tetris", + "homepage": null, + "size": 18, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 9.480347 + }, + { + "id": 18544226, + "name": "nand2tetris_projects", + "full_name": "xmunoz/nand2tetris_projects", + "owner": { + "login": "xmunoz", + "id": 1065196, + "avatar_url": "https://avatars.githubusercontent.com/u/1065196?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xmunoz", + "html_url": "https://github.com/xmunoz", + "followers_url": "https://api.github.com/users/xmunoz/followers", + "following_url": "https://api.github.com/users/xmunoz/following{/other_user}", + "gists_url": "https://api.github.com/users/xmunoz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xmunoz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xmunoz/subscriptions", + "organizations_url": "https://api.github.com/users/xmunoz/orgs", + "repos_url": "https://api.github.com/users/xmunoz/repos", + "events_url": "https://api.github.com/users/xmunoz/events{/privacy}", + "received_events_url": "https://api.github.com/users/xmunoz/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/xmunoz/nand2tetris_projects", + "description": "My solutions to \"From nand to tetris\"", + "fork": false, + "url": "https://api.github.com/repos/xmunoz/nand2tetris_projects", + "forks_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/forks", + "keys_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/teams", + "hooks_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/hooks", + "issue_events_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/events", + "assignees_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/tags", + "blobs_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/languages", + "stargazers_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/stargazers", + "contributors_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/contributors", + "subscribers_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/subscribers", + "subscription_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/subscription", + "commits_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/merges", + "archive_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/downloads", + "issues_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/labels{/name}", + "releases_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/xmunoz/nand2tetris_projects/deployments", + "created_at": "2014-04-08T03:40:50Z", + "updated_at": "2014-06-15T16:47:09Z", + "pushed_at": "2014-06-15T16:47:10Z", + "git_url": "git://github.com/xmunoz/nand2tetris_projects.git", + "ssh_url": "git@github.com:xmunoz/nand2tetris_projects.git", + "clone_url": "https://github.com/xmunoz/nand2tetris_projects.git", + "svn_url": "https://github.com/xmunoz/nand2tetris_projects", + "homepage": null, + "size": 429, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 8.53125 + }, + { + "id": 18079172, + "name": "Assembly-Tetris", + "full_name": "Ethanb00/Assembly-Tetris", + "owner": { + "login": "Ethanb00", + "id": 5893479, + "avatar_url": "https://avatars.githubusercontent.com/u/5893479?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Ethanb00", + "html_url": "https://github.com/Ethanb00", + "followers_url": "https://api.github.com/users/Ethanb00/followers", + "following_url": "https://api.github.com/users/Ethanb00/following{/other_user}", + "gists_url": "https://api.github.com/users/Ethanb00/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ethanb00/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ethanb00/subscriptions", + "organizations_url": "https://api.github.com/users/Ethanb00/orgs", + "repos_url": "https://api.github.com/users/Ethanb00/repos", + "events_url": "https://api.github.com/users/Ethanb00/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ethanb00/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Ethanb00/Assembly-Tetris", + "description": "x86 tasm assembly tetris", + "fork": false, + "url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris", + "forks_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/forks", + "keys_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/teams", + "hooks_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/events", + "assignees_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/tags", + "blobs_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/subscription", + "commits_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/merges", + "archive_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/downloads", + "issues_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Ethanb00/Assembly-Tetris/deployments", + "created_at": "2014-03-24T21:18:05Z", + "updated_at": "2014-03-24T21:25:59Z", + "pushed_at": "2014-03-24T21:25:56Z", + "git_url": "git://github.com/Ethanb00/Assembly-Tetris.git", + "ssh_url": "git@github.com:Ethanb00/Assembly-Tetris.git", + "clone_url": "https://github.com/Ethanb00/Assembly-Tetris.git", + "svn_url": "https://github.com/Ethanb00/Assembly-Tetris", + "homepage": null, + "size": 100, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.837827 + }, + { + "id": 52710196, + "name": "nand2tetris", + "full_name": "WLBF/nand2tetris", + "owner": { + "login": "WLBF", + "id": 11191570, + "avatar_url": "https://avatars.githubusercontent.com/u/11191570?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/WLBF", + "html_url": "https://github.com/WLBF", + "followers_url": "https://api.github.com/users/WLBF/followers", + "following_url": "https://api.github.com/users/WLBF/following{/other_user}", + "gists_url": "https://api.github.com/users/WLBF/gists{/gist_id}", + "starred_url": "https://api.github.com/users/WLBF/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/WLBF/subscriptions", + "organizations_url": "https://api.github.com/users/WLBF/orgs", + "repos_url": "https://api.github.com/users/WLBF/repos", + "events_url": "https://api.github.com/users/WLBF/events{/privacy}", + "received_events_url": "https://api.github.com/users/WLBF/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/WLBF/nand2tetris", + "description": "From Nand to Tetris", + "fork": false, + "url": "https://api.github.com/repos/WLBF/nand2tetris", + "forks_url": "https://api.github.com/repos/WLBF/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/WLBF/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/WLBF/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/WLBF/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/WLBF/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/WLBF/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/WLBF/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/WLBF/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/WLBF/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/WLBF/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/WLBF/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/WLBF/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/WLBF/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/WLBF/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/WLBF/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/WLBF/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/WLBF/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/WLBF/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/WLBF/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/WLBF/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/WLBF/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/WLBF/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/WLBF/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/WLBF/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/WLBF/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/WLBF/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/WLBF/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/WLBF/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/WLBF/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/WLBF/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/WLBF/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/WLBF/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/WLBF/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/WLBF/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/WLBF/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/WLBF/nand2tetris/deployments", + "created_at": "2016-02-28T07:33:04Z", + "updated_at": "2016-02-28T08:27:09Z", + "pushed_at": "2016-03-07T05:14:31Z", + "git_url": "git://github.com/WLBF/nand2tetris.git", + "ssh_url": "git@github.com:WLBF/nand2tetris.git", + "clone_url": "https://github.com/WLBF/nand2tetris.git", + "svn_url": "https://github.com/WLBF/nand2tetris", + "homepage": "", + "size": 515, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.837827 + }, + { + "id": 20493907, + "name": "HACK_COMPUTER_PLATFORM", + "full_name": "sschellhoff/HACK_COMPUTER_PLATFORM", + "owner": { + "login": "sschellhoff", + "id": 2566691, + "avatar_url": "https://avatars.githubusercontent.com/u/2566691?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sschellhoff", + "html_url": "https://github.com/sschellhoff", + "followers_url": "https://api.github.com/users/sschellhoff/followers", + "following_url": "https://api.github.com/users/sschellhoff/following{/other_user}", + "gists_url": "https://api.github.com/users/sschellhoff/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sschellhoff/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sschellhoff/subscriptions", + "organizations_url": "https://api.github.com/users/sschellhoff/orgs", + "repos_url": "https://api.github.com/users/sschellhoff/repos", + "events_url": "https://api.github.com/users/sschellhoff/events{/privacy}", + "received_events_url": "https://api.github.com/users/sschellhoff/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sschellhoff/HACK_COMPUTER_PLATFORM", + "description": "from nand to tetris", + "fork": false, + "url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM", + "forks_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/forks", + "keys_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/teams", + "hooks_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/hooks", + "issue_events_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/issues/events{/number}", + "events_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/events", + "assignees_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/assignees{/user}", + "branches_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/branches{/branch}", + "tags_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/tags", + "blobs_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/languages", + "stargazers_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/stargazers", + "contributors_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/contributors", + "subscribers_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/subscribers", + "subscription_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/subscription", + "commits_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/contents/{+path}", + "compare_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/merges", + "archive_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/downloads", + "issues_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/issues{/number}", + "pulls_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/labels{/name}", + "releases_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/releases{/id}", + "deployments_url": "https://api.github.com/repos/sschellhoff/HACK_COMPUTER_PLATFORM/deployments", + "created_at": "2014-06-04T18:00:03Z", + "updated_at": "2014-06-20T21:32:25Z", + "pushed_at": "2014-06-04T18:03:21Z", + "git_url": "git://github.com/sschellhoff/HACK_COMPUTER_PLATFORM.git", + "ssh_url": "git@github.com:sschellhoff/HACK_COMPUTER_PLATFORM.git", + "clone_url": "https://github.com/sschellhoff/HACK_COMPUTER_PLATFORM.git", + "svn_url": "https://github.com/sschellhoff/HACK_COMPUTER_PLATFORM", + "homepage": null, + "size": 3828, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.825 + }, + { + "id": 33284192, + "name": "Nand-to-Tetris", + "full_name": "daysls/Nand-to-Tetris", + "owner": { + "login": "daysls", + "id": 3493256, + "avatar_url": "https://avatars.githubusercontent.com/u/3493256?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/daysls", + "html_url": "https://github.com/daysls", + "followers_url": "https://api.github.com/users/daysls/followers", + "following_url": "https://api.github.com/users/daysls/following{/other_user}", + "gists_url": "https://api.github.com/users/daysls/gists{/gist_id}", + "starred_url": "https://api.github.com/users/daysls/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/daysls/subscriptions", + "organizations_url": "https://api.github.com/users/daysls/orgs", + "repos_url": "https://api.github.com/users/daysls/repos", + "events_url": "https://api.github.com/users/daysls/events{/privacy}", + "received_events_url": "https://api.github.com/users/daysls/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/daysls/Nand-to-Tetris", + "description": "Nand to Tetris ", + "fork": false, + "url": "https://api.github.com/repos/daysls/Nand-to-Tetris", + "forks_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/forks", + "keys_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/teams", + "hooks_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/events", + "assignees_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/tags", + "blobs_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/subscription", + "commits_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/merges", + "archive_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/downloads", + "issues_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/daysls/Nand-to-Tetris/deployments", + "created_at": "2015-04-02T02:13:01Z", + "updated_at": "2015-04-02T02:20:27Z", + "pushed_at": "2015-04-02T02:20:27Z", + "git_url": "git://github.com/daysls/Nand-to-Tetris.git", + "ssh_url": "git@github.com:daysls/Nand-to-Tetris.git", + "clone_url": "https://github.com/daysls/Nand-to-Tetris.git", + "svn_url": "https://github.com/daysls/Nand-to-Tetris", + "homepage": null, + "size": 276, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.825 + }, + { + "id": 49198081, + "name": "tetris-x86-assembly", + "full_name": "iastewar/tetris-x86-assembly", + "owner": { + "login": "iastewar", + "id": 9752092, + "avatar_url": "https://avatars.githubusercontent.com/u/9752092?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/iastewar", + "html_url": "https://github.com/iastewar", + "followers_url": "https://api.github.com/users/iastewar/followers", + "following_url": "https://api.github.com/users/iastewar/following{/other_user}", + "gists_url": "https://api.github.com/users/iastewar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/iastewar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/iastewar/subscriptions", + "organizations_url": "https://api.github.com/users/iastewar/orgs", + "repos_url": "https://api.github.com/users/iastewar/repos", + "events_url": "https://api.github.com/users/iastewar/events{/privacy}", + "received_events_url": "https://api.github.com/users/iastewar/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/iastewar/tetris-x86-assembly", + "description": "Tetris in x86 assembly", + "fork": false, + "url": "https://api.github.com/repos/iastewar/tetris-x86-assembly", + "forks_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/forks", + "keys_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/teams", + "hooks_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/hooks", + "issue_events_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/issues/events{/number}", + "events_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/events", + "assignees_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/assignees{/user}", + "branches_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/branches{/branch}", + "tags_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/tags", + "blobs_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/statuses/{sha}", + "languages_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/languages", + "stargazers_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/stargazers", + "contributors_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/contributors", + "subscribers_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/subscribers", + "subscription_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/subscription", + "commits_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/contents/{+path}", + "compare_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/merges", + "archive_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/downloads", + "issues_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/issues{/number}", + "pulls_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/pulls{/number}", + "milestones_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/milestones{/number}", + "notifications_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/labels{/name}", + "releases_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/releases{/id}", + "deployments_url": "https://api.github.com/repos/iastewar/tetris-x86-assembly/deployments", + "created_at": "2016-01-07T10:29:10Z", + "updated_at": "2016-01-07T10:30:58Z", + "pushed_at": "2016-01-07T10:30:57Z", + "git_url": "git://github.com/iastewar/tetris-x86-assembly.git", + "ssh_url": "git@github.com:iastewar/tetris-x86-assembly.git", + "clone_url": "https://github.com/iastewar/tetris-x86-assembly.git", + "svn_url": "https://github.com/iastewar/tetris-x86-assembly", + "homepage": null, + "size": 18, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.825 + }, + { + "id": 41434204, + "name": "CRCP2330", + "full_name": "eileenmguo/CRCP2330", + "owner": { + "login": "eileenmguo", + "id": 9022549, + "avatar_url": "https://avatars.githubusercontent.com/u/9022549?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/eileenmguo", + "html_url": "https://github.com/eileenmguo", + "followers_url": "https://api.github.com/users/eileenmguo/followers", + "following_url": "https://api.github.com/users/eileenmguo/following{/other_user}", + "gists_url": "https://api.github.com/users/eileenmguo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/eileenmguo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/eileenmguo/subscriptions", + "organizations_url": "https://api.github.com/users/eileenmguo/orgs", + "repos_url": "https://api.github.com/users/eileenmguo/repos", + "events_url": "https://api.github.com/users/eileenmguo/events{/privacy}", + "received_events_url": "https://api.github.com/users/eileenmguo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/eileenmguo/CRCP2330", + "description": "Nand To Tetris", + "fork": false, + "url": "https://api.github.com/repos/eileenmguo/CRCP2330", + "forks_url": "https://api.github.com/repos/eileenmguo/CRCP2330/forks", + "keys_url": "https://api.github.com/repos/eileenmguo/CRCP2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/eileenmguo/CRCP2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/eileenmguo/CRCP2330/teams", + "hooks_url": "https://api.github.com/repos/eileenmguo/CRCP2330/hooks", + "issue_events_url": "https://api.github.com/repos/eileenmguo/CRCP2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/eileenmguo/CRCP2330/events", + "assignees_url": "https://api.github.com/repos/eileenmguo/CRCP2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/eileenmguo/CRCP2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/eileenmguo/CRCP2330/tags", + "blobs_url": "https://api.github.com/repos/eileenmguo/CRCP2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/eileenmguo/CRCP2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/eileenmguo/CRCP2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/eileenmguo/CRCP2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/eileenmguo/CRCP2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/eileenmguo/CRCP2330/languages", + "stargazers_url": "https://api.github.com/repos/eileenmguo/CRCP2330/stargazers", + "contributors_url": "https://api.github.com/repos/eileenmguo/CRCP2330/contributors", + "subscribers_url": "https://api.github.com/repos/eileenmguo/CRCP2330/subscribers", + "subscription_url": "https://api.github.com/repos/eileenmguo/CRCP2330/subscription", + "commits_url": "https://api.github.com/repos/eileenmguo/CRCP2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/eileenmguo/CRCP2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/eileenmguo/CRCP2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/eileenmguo/CRCP2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/eileenmguo/CRCP2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/eileenmguo/CRCP2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/eileenmguo/CRCP2330/merges", + "archive_url": "https://api.github.com/repos/eileenmguo/CRCP2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/eileenmguo/CRCP2330/downloads", + "issues_url": "https://api.github.com/repos/eileenmguo/CRCP2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/eileenmguo/CRCP2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/eileenmguo/CRCP2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/eileenmguo/CRCP2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/eileenmguo/CRCP2330/labels{/name}", + "releases_url": "https://api.github.com/repos/eileenmguo/CRCP2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/eileenmguo/CRCP2330/deployments", + "created_at": "2015-08-26T15:39:58Z", + "updated_at": "2015-08-27T23:01:08Z", + "pushed_at": "2015-12-08T02:41:38Z", + "git_url": "git://github.com/eileenmguo/CRCP2330.git", + "ssh_url": "git@github.com:eileenmguo/CRCP2330.git", + "clone_url": "https://github.com/eileenmguo/CRCP2330.git", + "svn_url": "https://github.com/eileenmguo/CRCP2330", + "homepage": null, + "size": 192, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.825 + }, + { + "id": 41532803, + "name": "crcp2330", + "full_name": "maphaiyarath/crcp2330", + "owner": { + "login": "maphaiyarath", + "id": 13982222, + "avatar_url": "https://avatars.githubusercontent.com/u/13982222?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/maphaiyarath", + "html_url": "https://github.com/maphaiyarath", + "followers_url": "https://api.github.com/users/maphaiyarath/followers", + "following_url": "https://api.github.com/users/maphaiyarath/following{/other_user}", + "gists_url": "https://api.github.com/users/maphaiyarath/gists{/gist_id}", + "starred_url": "https://api.github.com/users/maphaiyarath/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/maphaiyarath/subscriptions", + "organizations_url": "https://api.github.com/users/maphaiyarath/orgs", + "repos_url": "https://api.github.com/users/maphaiyarath/repos", + "events_url": "https://api.github.com/users/maphaiyarath/events{/privacy}", + "received_events_url": "https://api.github.com/users/maphaiyarath/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/maphaiyarath/crcp2330", + "description": "nand to tetris", + "fork": false, + "url": "https://api.github.com/repos/maphaiyarath/crcp2330", + "forks_url": "https://api.github.com/repos/maphaiyarath/crcp2330/forks", + "keys_url": "https://api.github.com/repos/maphaiyarath/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/maphaiyarath/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/maphaiyarath/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/maphaiyarath/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/maphaiyarath/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/maphaiyarath/crcp2330/events", + "assignees_url": "https://api.github.com/repos/maphaiyarath/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/maphaiyarath/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/maphaiyarath/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/maphaiyarath/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/maphaiyarath/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/maphaiyarath/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/maphaiyarath/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/maphaiyarath/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/maphaiyarath/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/maphaiyarath/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/maphaiyarath/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/maphaiyarath/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/maphaiyarath/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/maphaiyarath/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/maphaiyarath/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/maphaiyarath/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/maphaiyarath/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/maphaiyarath/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/maphaiyarath/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/maphaiyarath/crcp2330/merges", + "archive_url": "https://api.github.com/repos/maphaiyarath/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/maphaiyarath/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/maphaiyarath/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/maphaiyarath/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/maphaiyarath/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/maphaiyarath/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/maphaiyarath/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/maphaiyarath/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/maphaiyarath/crcp2330/deployments", + "created_at": "2015-08-28T07:13:16Z", + "updated_at": "2015-08-28T07:24:34Z", + "pushed_at": "2015-12-11T09:21:41Z", + "git_url": "git://github.com/maphaiyarath/crcp2330.git", + "ssh_url": "git@github.com:maphaiyarath/crcp2330.git", + "clone_url": "https://github.com/maphaiyarath/crcp2330.git", + "svn_url": "https://github.com/maphaiyarath/crcp2330", + "homepage": null, + "size": 198, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.825 + }, + { + "id": 47229336, + "name": "n2t", + "full_name": "PhillipChaffee/n2t", + "owner": { + "login": "PhillipChaffee", + "id": 2183862, + "avatar_url": "https://avatars.githubusercontent.com/u/2183862?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/PhillipChaffee", + "html_url": "https://github.com/PhillipChaffee", + "followers_url": "https://api.github.com/users/PhillipChaffee/followers", + "following_url": "https://api.github.com/users/PhillipChaffee/following{/other_user}", + "gists_url": "https://api.github.com/users/PhillipChaffee/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PhillipChaffee/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PhillipChaffee/subscriptions", + "organizations_url": "https://api.github.com/users/PhillipChaffee/orgs", + "repos_url": "https://api.github.com/users/PhillipChaffee/repos", + "events_url": "https://api.github.com/users/PhillipChaffee/events{/privacy}", + "received_events_url": "https://api.github.com/users/PhillipChaffee/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/PhillipChaffee/n2t", + "description": "Nand 2 Tetris", + "fork": false, + "url": "https://api.github.com/repos/PhillipChaffee/n2t", + "forks_url": "https://api.github.com/repos/PhillipChaffee/n2t/forks", + "keys_url": "https://api.github.com/repos/PhillipChaffee/n2t/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/PhillipChaffee/n2t/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/PhillipChaffee/n2t/teams", + "hooks_url": "https://api.github.com/repos/PhillipChaffee/n2t/hooks", + "issue_events_url": "https://api.github.com/repos/PhillipChaffee/n2t/issues/events{/number}", + "events_url": "https://api.github.com/repos/PhillipChaffee/n2t/events", + "assignees_url": "https://api.github.com/repos/PhillipChaffee/n2t/assignees{/user}", + "branches_url": "https://api.github.com/repos/PhillipChaffee/n2t/branches{/branch}", + "tags_url": "https://api.github.com/repos/PhillipChaffee/n2t/tags", + "blobs_url": "https://api.github.com/repos/PhillipChaffee/n2t/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/PhillipChaffee/n2t/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/PhillipChaffee/n2t/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/PhillipChaffee/n2t/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/PhillipChaffee/n2t/statuses/{sha}", + "languages_url": "https://api.github.com/repos/PhillipChaffee/n2t/languages", + "stargazers_url": "https://api.github.com/repos/PhillipChaffee/n2t/stargazers", + "contributors_url": "https://api.github.com/repos/PhillipChaffee/n2t/contributors", + "subscribers_url": "https://api.github.com/repos/PhillipChaffee/n2t/subscribers", + "subscription_url": "https://api.github.com/repos/PhillipChaffee/n2t/subscription", + "commits_url": "https://api.github.com/repos/PhillipChaffee/n2t/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/PhillipChaffee/n2t/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/PhillipChaffee/n2t/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/PhillipChaffee/n2t/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/PhillipChaffee/n2t/contents/{+path}", + "compare_url": "https://api.github.com/repos/PhillipChaffee/n2t/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/PhillipChaffee/n2t/merges", + "archive_url": "https://api.github.com/repos/PhillipChaffee/n2t/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/PhillipChaffee/n2t/downloads", + "issues_url": "https://api.github.com/repos/PhillipChaffee/n2t/issues{/number}", + "pulls_url": "https://api.github.com/repos/PhillipChaffee/n2t/pulls{/number}", + "milestones_url": "https://api.github.com/repos/PhillipChaffee/n2t/milestones{/number}", + "notifications_url": "https://api.github.com/repos/PhillipChaffee/n2t/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/PhillipChaffee/n2t/labels{/name}", + "releases_url": "https://api.github.com/repos/PhillipChaffee/n2t/releases{/id}", + "deployments_url": "https://api.github.com/repos/PhillipChaffee/n2t/deployments", + "created_at": "2015-12-02T01:42:52Z", + "updated_at": "2016-01-11T20:46:54Z", + "pushed_at": "2016-06-01T15:09:13Z", + "git_url": "git://github.com/PhillipChaffee/n2t.git", + "ssh_url": "git@github.com:PhillipChaffee/n2t.git", + "clone_url": "https://github.com/PhillipChaffee/n2t.git", + "svn_url": "https://github.com/PhillipChaffee/n2t", + "homepage": "http://www.nand2tetris.org", + "size": 605, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.825 + }, + { + "id": 8762442, + "name": "TrashCompactor", + "full_name": "SpyhopSpring2013/TrashCompactor", + "owner": { + "login": "SpyhopSpring2013", + "id": 3858400, + "avatar_url": "https://avatars.githubusercontent.com/u/3858400?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/SpyhopSpring2013", + "html_url": "https://github.com/SpyhopSpring2013", + "followers_url": "https://api.github.com/users/SpyhopSpring2013/followers", + "following_url": "https://api.github.com/users/SpyhopSpring2013/following{/other_user}", + "gists_url": "https://api.github.com/users/SpyhopSpring2013/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SpyhopSpring2013/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SpyhopSpring2013/subscriptions", + "organizations_url": "https://api.github.com/users/SpyhopSpring2013/orgs", + "repos_url": "https://api.github.com/users/SpyhopSpring2013/repos", + "events_url": "https://api.github.com/users/SpyhopSpring2013/events{/privacy}", + "received_events_url": "https://api.github.com/users/SpyhopSpring2013/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/SpyhopSpring2013/TrashCompactor", + "description": "Tetris-like Recycling Game", + "fork": false, + "url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor", + "forks_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/forks", + "keys_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/teams", + "hooks_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/hooks", + "issue_events_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/issues/events{/number}", + "events_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/events", + "assignees_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/assignees{/user}", + "branches_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/branches{/branch}", + "tags_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/tags", + "blobs_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/languages", + "stargazers_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/stargazers", + "contributors_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/contributors", + "subscribers_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/subscribers", + "subscription_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/subscription", + "commits_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/contents/{+path}", + "compare_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/merges", + "archive_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/downloads", + "issues_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/issues{/number}", + "pulls_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/labels{/name}", + "releases_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/releases{/id}", + "deployments_url": "https://api.github.com/repos/SpyhopSpring2013/TrashCompactor/deployments", + "created_at": "2013-03-13T21:58:23Z", + "updated_at": "2013-12-09T11:19:27Z", + "pushed_at": "2013-05-31T15:38:06Z", + "git_url": "git://github.com/SpyhopSpring2013/TrashCompactor.git", + "ssh_url": "git@github.com:SpyhopSpring2013/TrashCompactor.git", + "clone_url": "https://github.com/SpyhopSpring2013/TrashCompactor.git", + "svn_url": "https://github.com/SpyhopSpring2013/TrashCompactor", + "homepage": null, + "size": 242108, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.783053 + }, + { + "id": 35029495, + "name": "nand2tetris", + "full_name": "boringmachine/nand2tetris", + "owner": { + "login": "boringmachine", + "id": 2806941, + "avatar_url": "https://avatars.githubusercontent.com/u/2806941?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/boringmachine", + "html_url": "https://github.com/boringmachine", + "followers_url": "https://api.github.com/users/boringmachine/followers", + "following_url": "https://api.github.com/users/boringmachine/following{/other_user}", + "gists_url": "https://api.github.com/users/boringmachine/gists{/gist_id}", + "starred_url": "https://api.github.com/users/boringmachine/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/boringmachine/subscriptions", + "organizations_url": "https://api.github.com/users/boringmachine/orgs", + "repos_url": "https://api.github.com/users/boringmachine/repos", + "events_url": "https://api.github.com/users/boringmachine/events{/privacy}", + "received_events_url": "https://api.github.com/users/boringmachine/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/boringmachine/nand2tetris", + "description": "nand 2 tetris practicing", + "fork": false, + "url": "https://api.github.com/repos/boringmachine/nand2tetris", + "forks_url": "https://api.github.com/repos/boringmachine/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/boringmachine/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/boringmachine/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/boringmachine/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/boringmachine/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/boringmachine/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/boringmachine/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/boringmachine/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/boringmachine/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/boringmachine/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/boringmachine/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/boringmachine/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/boringmachine/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/boringmachine/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/boringmachine/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/boringmachine/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/boringmachine/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/boringmachine/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/boringmachine/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/boringmachine/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/boringmachine/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/boringmachine/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/boringmachine/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/boringmachine/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/boringmachine/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/boringmachine/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/boringmachine/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/boringmachine/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/boringmachine/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/boringmachine/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/boringmachine/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/boringmachine/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/boringmachine/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/boringmachine/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/boringmachine/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/boringmachine/nand2tetris/deployments", + "created_at": "2015-05-04T10:51:16Z", + "updated_at": "2015-05-15T07:57:54Z", + "pushed_at": "2015-06-14T01:29:58Z", + "git_url": "git://github.com/boringmachine/nand2tetris.git", + "ssh_url": "git@github.com:boringmachine/nand2tetris.git", + "clone_url": "https://github.com/boringmachine/nand2tetris.git", + "svn_url": "https://github.com/boringmachine/nand2tetris", + "homepage": null, + "size": 13136, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.783053 + }, + { + "id": 51627305, + "name": "TheElementsOfComputingSystems", + "full_name": "ChaeOkay/TheElementsOfComputingSystems", + "owner": { + "login": "ChaeOkay", + "id": 3820966, + "avatar_url": "https://avatars.githubusercontent.com/u/3820966?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ChaeOkay", + "html_url": "https://github.com/ChaeOkay", + "followers_url": "https://api.github.com/users/ChaeOkay/followers", + "following_url": "https://api.github.com/users/ChaeOkay/following{/other_user}", + "gists_url": "https://api.github.com/users/ChaeOkay/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ChaeOkay/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ChaeOkay/subscriptions", + "organizations_url": "https://api.github.com/users/ChaeOkay/orgs", + "repos_url": "https://api.github.com/users/ChaeOkay/repos", + "events_url": "https://api.github.com/users/ChaeOkay/events{/privacy}", + "received_events_url": "https://api.github.com/users/ChaeOkay/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ChaeOkay/TheElementsOfComputingSystems", + "description": "Nand to Tetris Projects", + "fork": false, + "url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems", + "forks_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/forks", + "keys_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/teams", + "hooks_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/hooks", + "issue_events_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/issues/events{/number}", + "events_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/events", + "assignees_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/assignees{/user}", + "branches_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/branches{/branch}", + "tags_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/tags", + "blobs_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/languages", + "stargazers_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/stargazers", + "contributors_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/contributors", + "subscribers_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/subscribers", + "subscription_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/subscription", + "commits_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/contents/{+path}", + "compare_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/merges", + "archive_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/downloads", + "issues_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/issues{/number}", + "pulls_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/labels{/name}", + "releases_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/releases{/id}", + "deployments_url": "https://api.github.com/repos/ChaeOkay/TheElementsOfComputingSystems/deployments", + "created_at": "2016-02-13T01:40:35Z", + "updated_at": "2016-02-13T01:40:58Z", + "pushed_at": "2016-02-22T02:17:40Z", + "git_url": "git://github.com/ChaeOkay/TheElementsOfComputingSystems.git", + "ssh_url": "git@github.com:ChaeOkay/TheElementsOfComputingSystems.git", + "clone_url": "https://github.com/ChaeOkay/TheElementsOfComputingSystems.git", + "svn_url": "https://github.com/ChaeOkay/TheElementsOfComputingSystems", + "homepage": null, + "size": 516, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 6.783053 + }, + { + "id": 23557231, + "name": "nand2tetris", + "full_name": "ZenBowman/nand2tetris", + "owner": { + "login": "ZenBowman", + "id": 2371702, + "avatar_url": "https://avatars.githubusercontent.com/u/2371702?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ZenBowman", + "html_url": "https://github.com/ZenBowman", + "followers_url": "https://api.github.com/users/ZenBowman/followers", + "following_url": "https://api.github.com/users/ZenBowman/following{/other_user}", + "gists_url": "https://api.github.com/users/ZenBowman/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ZenBowman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ZenBowman/subscriptions", + "organizations_url": "https://api.github.com/users/ZenBowman/orgs", + "repos_url": "https://api.github.com/users/ZenBowman/repos", + "events_url": "https://api.github.com/users/ZenBowman/events{/privacy}", + "received_events_url": "https://api.github.com/users/ZenBowman/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ZenBowman/nand2tetris", + "description": "Exercises from nand 2 tetris", + "fork": false, + "url": "https://api.github.com/repos/ZenBowman/nand2tetris", + "forks_url": "https://api.github.com/repos/ZenBowman/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ZenBowman/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ZenBowman/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ZenBowman/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ZenBowman/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ZenBowman/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ZenBowman/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ZenBowman/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ZenBowman/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ZenBowman/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ZenBowman/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ZenBowman/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ZenBowman/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ZenBowman/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ZenBowman/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ZenBowman/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ZenBowman/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ZenBowman/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ZenBowman/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ZenBowman/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ZenBowman/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ZenBowman/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ZenBowman/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ZenBowman/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ZenBowman/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ZenBowman/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ZenBowman/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ZenBowman/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ZenBowman/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ZenBowman/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ZenBowman/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ZenBowman/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ZenBowman/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ZenBowman/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ZenBowman/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ZenBowman/nand2tetris/deployments", + "created_at": "2014-09-01T22:13:41Z", + "updated_at": "2014-09-02T01:19:37Z", + "pushed_at": "2014-10-05T19:08:56Z", + "git_url": "git://github.com/ZenBowman/nand2tetris.git", + "ssh_url": "git@github.com:ZenBowman/nand2tetris.git", + "clone_url": "https://github.com/ZenBowman/nand2tetris.git", + "svn_url": "https://github.com/ZenBowman/nand2tetris", + "homepage": null, + "size": 432, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.971875 + }, + { + "id": 53755232, + "name": "nand2tetris", + "full_name": "jake-jake-jake/nand2tetris", + "owner": { + "login": "jake-jake-jake", + "id": 13736437, + "avatar_url": "https://avatars.githubusercontent.com/u/13736437?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jake-jake-jake", + "html_url": "https://github.com/jake-jake-jake", + "followers_url": "https://api.github.com/users/jake-jake-jake/followers", + "following_url": "https://api.github.com/users/jake-jake-jake/following{/other_user}", + "gists_url": "https://api.github.com/users/jake-jake-jake/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jake-jake-jake/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jake-jake-jake/subscriptions", + "organizations_url": "https://api.github.com/users/jake-jake-jake/orgs", + "repos_url": "https://api.github.com/users/jake-jake-jake/repos", + "events_url": "https://api.github.com/users/jake-jake-jake/events{/privacy}", + "received_events_url": "https://api.github.com/users/jake-jake-jake/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jake-jake-jake/nand2tetris", + "description": "Working through Nand 2 Tetris", + "fork": false, + "url": "https://api.github.com/repos/jake-jake-jake/nand2tetris", + "forks_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jake-jake-jake/nand2tetris/deployments", + "created_at": "2016-03-12T21:56:11Z", + "updated_at": "2016-03-12T22:00:38Z", + "pushed_at": "2016-03-12T22:00:33Z", + "git_url": "git://github.com/jake-jake-jake/nand2tetris.git", + "ssh_url": "git@github.com:jake-jake-jake/nand2tetris.git", + "clone_url": "https://github.com/jake-jake-jake/nand2tetris.git", + "svn_url": "https://github.com/jake-jake-jake/nand2tetris", + "homepage": null, + "size": 157, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.971875 + }, + { + "id": 59998741, + "name": "from-Nand-to-Tetris", + "full_name": "perplexedpigmy/from-Nand-to-Tetris", + "owner": { + "login": "perplexedpigmy", + "id": 9532454, + "avatar_url": "https://avatars.githubusercontent.com/u/9532454?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/perplexedpigmy", + "html_url": "https://github.com/perplexedpigmy", + "followers_url": "https://api.github.com/users/perplexedpigmy/followers", + "following_url": "https://api.github.com/users/perplexedpigmy/following{/other_user}", + "gists_url": "https://api.github.com/users/perplexedpigmy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/perplexedpigmy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/perplexedpigmy/subscriptions", + "organizations_url": "https://api.github.com/users/perplexedpigmy/orgs", + "repos_url": "https://api.github.com/users/perplexedpigmy/repos", + "events_url": "https://api.github.com/users/perplexedpigmy/events{/privacy}", + "received_events_url": "https://api.github.com/users/perplexedpigmy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/perplexedpigmy/from-Nand-to-Tetris", + "description": "Coursera - From Nand To Tetris ", + "fork": false, + "url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris", + "forks_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/forks", + "keys_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/teams", + "hooks_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/events", + "assignees_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/tags", + "blobs_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/subscription", + "commits_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/merges", + "archive_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/downloads", + "issues_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/perplexedpigmy/from-Nand-to-Tetris/deployments", + "created_at": "2016-05-30T09:42:39Z", + "updated_at": "2016-05-30T10:51:33Z", + "pushed_at": "2016-06-19T16:06:53Z", + "git_url": "git://github.com/perplexedpigmy/from-Nand-to-Tetris.git", + "ssh_url": "git@github.com:perplexedpigmy/from-Nand-to-Tetris.git", + "clone_url": "https://github.com/perplexedpigmy/from-Nand-to-Tetris.git", + "svn_url": "https://github.com/perplexedpigmy/from-Nand-to-Tetris", + "homepage": null, + "size": 508, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.971875 + }, + { + "id": 41434192, + "name": "crcp2330", + "full_name": "zbiehl/crcp2330", + "owner": { + "login": "zbiehl", + "id": 10563862, + "avatar_url": "https://avatars.githubusercontent.com/u/10563862?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zbiehl", + "html_url": "https://github.com/zbiehl", + "followers_url": "https://api.github.com/users/zbiehl/followers", + "following_url": "https://api.github.com/users/zbiehl/following{/other_user}", + "gists_url": "https://api.github.com/users/zbiehl/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zbiehl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zbiehl/subscriptions", + "organizations_url": "https://api.github.com/users/zbiehl/orgs", + "repos_url": "https://api.github.com/users/zbiehl/repos", + "events_url": "https://api.github.com/users/zbiehl/events{/privacy}", + "received_events_url": "https://api.github.com/users/zbiehl/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/zbiehl/crcp2330", + "description": "Nand-Tetris work (CRCP 2330)", + "fork": false, + "url": "https://api.github.com/repos/zbiehl/crcp2330", + "forks_url": "https://api.github.com/repos/zbiehl/crcp2330/forks", + "keys_url": "https://api.github.com/repos/zbiehl/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zbiehl/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zbiehl/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/zbiehl/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/zbiehl/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/zbiehl/crcp2330/events", + "assignees_url": "https://api.github.com/repos/zbiehl/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/zbiehl/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/zbiehl/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/zbiehl/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zbiehl/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zbiehl/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zbiehl/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zbiehl/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zbiehl/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/zbiehl/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/zbiehl/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/zbiehl/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/zbiehl/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/zbiehl/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zbiehl/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zbiehl/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zbiehl/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zbiehl/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/zbiehl/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zbiehl/crcp2330/merges", + "archive_url": "https://api.github.com/repos/zbiehl/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zbiehl/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/zbiehl/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/zbiehl/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zbiehl/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zbiehl/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zbiehl/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/zbiehl/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/zbiehl/crcp2330/deployments", + "created_at": "2015-08-26T15:39:54Z", + "updated_at": "2015-08-28T14:57:15Z", + "pushed_at": "2015-12-12T16:52:17Z", + "git_url": "git://github.com/zbiehl/crcp2330.git", + "ssh_url": "git@github.com:zbiehl/crcp2330.git", + "clone_url": "https://github.com/zbiehl/crcp2330.git", + "svn_url": "https://github.com/zbiehl/crcp2330", + "homepage": null, + "size": 179, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.958142 + }, + { + "id": 41434202, + "name": "crcp2330", + "full_name": "esposama/crcp2330", + "owner": { + "login": "esposama", + "id": 13947981, + "avatar_url": "https://avatars.githubusercontent.com/u/13947981?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/esposama", + "html_url": "https://github.com/esposama", + "followers_url": "https://api.github.com/users/esposama/followers", + "following_url": "https://api.github.com/users/esposama/following{/other_user}", + "gists_url": "https://api.github.com/users/esposama/gists{/gist_id}", + "starred_url": "https://api.github.com/users/esposama/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/esposama/subscriptions", + "organizations_url": "https://api.github.com/users/esposama/orgs", + "repos_url": "https://api.github.com/users/esposama/repos", + "events_url": "https://api.github.com/users/esposama/events{/privacy}", + "received_events_url": "https://api.github.com/users/esposama/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/esposama/crcp2330", + "description": "Work for Nand to Tetris ", + "fork": false, + "url": "https://api.github.com/repos/esposama/crcp2330", + "forks_url": "https://api.github.com/repos/esposama/crcp2330/forks", + "keys_url": "https://api.github.com/repos/esposama/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/esposama/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/esposama/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/esposama/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/esposama/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/esposama/crcp2330/events", + "assignees_url": "https://api.github.com/repos/esposama/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/esposama/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/esposama/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/esposama/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/esposama/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/esposama/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/esposama/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/esposama/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/esposama/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/esposama/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/esposama/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/esposama/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/esposama/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/esposama/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/esposama/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/esposama/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/esposama/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/esposama/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/esposama/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/esposama/crcp2330/merges", + "archive_url": "https://api.github.com/repos/esposama/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/esposama/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/esposama/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/esposama/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/esposama/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/esposama/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/esposama/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/esposama/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/esposama/crcp2330/deployments", + "created_at": "2015-08-26T15:39:57Z", + "updated_at": "2015-08-28T14:52:47Z", + "pushed_at": "2015-12-10T20:41:58Z", + "git_url": "git://github.com/esposama/crcp2330.git", + "ssh_url": "git@github.com:esposama/crcp2330.git", + "clone_url": "https://github.com/esposama/crcp2330.git", + "svn_url": "https://github.com/esposama/crcp2330", + "homepage": null, + "size": 223, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.958142 + }, + { + "id": 41434237, + "name": "CRCP2330", + "full_name": "CSAR101/CRCP2330", + "owner": { + "login": "CSAR101", + "id": 6454434, + "avatar_url": "https://avatars.githubusercontent.com/u/6454434?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/CSAR101", + "html_url": "https://github.com/CSAR101", + "followers_url": "https://api.github.com/users/CSAR101/followers", + "following_url": "https://api.github.com/users/CSAR101/following{/other_user}", + "gists_url": "https://api.github.com/users/CSAR101/gists{/gist_id}", + "starred_url": "https://api.github.com/users/CSAR101/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CSAR101/subscriptions", + "organizations_url": "https://api.github.com/users/CSAR101/orgs", + "repos_url": "https://api.github.com/users/CSAR101/repos", + "events_url": "https://api.github.com/users/CSAR101/events{/privacy}", + "received_events_url": "https://api.github.com/users/CSAR101/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/CSAR101/CRCP2330", + "description": "Projects for NAND To Tetris", + "fork": false, + "url": "https://api.github.com/repos/CSAR101/CRCP2330", + "forks_url": "https://api.github.com/repos/CSAR101/CRCP2330/forks", + "keys_url": "https://api.github.com/repos/CSAR101/CRCP2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/CSAR101/CRCP2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/CSAR101/CRCP2330/teams", + "hooks_url": "https://api.github.com/repos/CSAR101/CRCP2330/hooks", + "issue_events_url": "https://api.github.com/repos/CSAR101/CRCP2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/CSAR101/CRCP2330/events", + "assignees_url": "https://api.github.com/repos/CSAR101/CRCP2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/CSAR101/CRCP2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/CSAR101/CRCP2330/tags", + "blobs_url": "https://api.github.com/repos/CSAR101/CRCP2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/CSAR101/CRCP2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/CSAR101/CRCP2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/CSAR101/CRCP2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/CSAR101/CRCP2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/CSAR101/CRCP2330/languages", + "stargazers_url": "https://api.github.com/repos/CSAR101/CRCP2330/stargazers", + "contributors_url": "https://api.github.com/repos/CSAR101/CRCP2330/contributors", + "subscribers_url": "https://api.github.com/repos/CSAR101/CRCP2330/subscribers", + "subscription_url": "https://api.github.com/repos/CSAR101/CRCP2330/subscription", + "commits_url": "https://api.github.com/repos/CSAR101/CRCP2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/CSAR101/CRCP2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/CSAR101/CRCP2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/CSAR101/CRCP2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/CSAR101/CRCP2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/CSAR101/CRCP2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/CSAR101/CRCP2330/merges", + "archive_url": "https://api.github.com/repos/CSAR101/CRCP2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/CSAR101/CRCP2330/downloads", + "issues_url": "https://api.github.com/repos/CSAR101/CRCP2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/CSAR101/CRCP2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/CSAR101/CRCP2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/CSAR101/CRCP2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/CSAR101/CRCP2330/labels{/name}", + "releases_url": "https://api.github.com/repos/CSAR101/CRCP2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/CSAR101/CRCP2330/deployments", + "created_at": "2015-08-26T15:40:44Z", + "updated_at": "2015-08-31T14:49:51Z", + "pushed_at": "2015-12-11T08:52:59Z", + "git_url": "git://github.com/CSAR101/CRCP2330.git", + "ssh_url": "git@github.com:CSAR101/CRCP2330.git", + "clone_url": "https://github.com/CSAR101/CRCP2330.git", + "svn_url": "https://github.com/CSAR101/CRCP2330", + "homepage": null, + "size": 192, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.958142 + }, + { + "id": 33399954, + "name": "nand2tetris-project", + "full_name": "takeisa/nand2tetris-project", + "owner": { + "login": "takeisa", + "id": 1157801, + "avatar_url": "https://avatars.githubusercontent.com/u/1157801?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/takeisa", + "html_url": "https://github.com/takeisa", + "followers_url": "https://api.github.com/users/takeisa/followers", + "following_url": "https://api.github.com/users/takeisa/following{/other_user}", + "gists_url": "https://api.github.com/users/takeisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/takeisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/takeisa/subscriptions", + "organizations_url": "https://api.github.com/users/takeisa/orgs", + "repos_url": "https://api.github.com/users/takeisa/repos", + "events_url": "https://api.github.com/users/takeisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/takeisa/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/takeisa/nand2tetris-project", + "description": "NAND to Tetris project files", + "fork": false, + "url": "https://api.github.com/repos/takeisa/nand2tetris-project", + "forks_url": "https://api.github.com/repos/takeisa/nand2tetris-project/forks", + "keys_url": "https://api.github.com/repos/takeisa/nand2tetris-project/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/takeisa/nand2tetris-project/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/takeisa/nand2tetris-project/teams", + "hooks_url": "https://api.github.com/repos/takeisa/nand2tetris-project/hooks", + "issue_events_url": "https://api.github.com/repos/takeisa/nand2tetris-project/issues/events{/number}", + "events_url": "https://api.github.com/repos/takeisa/nand2tetris-project/events", + "assignees_url": "https://api.github.com/repos/takeisa/nand2tetris-project/assignees{/user}", + "branches_url": "https://api.github.com/repos/takeisa/nand2tetris-project/branches{/branch}", + "tags_url": "https://api.github.com/repos/takeisa/nand2tetris-project/tags", + "blobs_url": "https://api.github.com/repos/takeisa/nand2tetris-project/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/takeisa/nand2tetris-project/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/takeisa/nand2tetris-project/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/takeisa/nand2tetris-project/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/takeisa/nand2tetris-project/statuses/{sha}", + "languages_url": "https://api.github.com/repos/takeisa/nand2tetris-project/languages", + "stargazers_url": "https://api.github.com/repos/takeisa/nand2tetris-project/stargazers", + "contributors_url": "https://api.github.com/repos/takeisa/nand2tetris-project/contributors", + "subscribers_url": "https://api.github.com/repos/takeisa/nand2tetris-project/subscribers", + "subscription_url": "https://api.github.com/repos/takeisa/nand2tetris-project/subscription", + "commits_url": "https://api.github.com/repos/takeisa/nand2tetris-project/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/takeisa/nand2tetris-project/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/takeisa/nand2tetris-project/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/takeisa/nand2tetris-project/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/takeisa/nand2tetris-project/contents/{+path}", + "compare_url": "https://api.github.com/repos/takeisa/nand2tetris-project/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/takeisa/nand2tetris-project/merges", + "archive_url": "https://api.github.com/repos/takeisa/nand2tetris-project/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/takeisa/nand2tetris-project/downloads", + "issues_url": "https://api.github.com/repos/takeisa/nand2tetris-project/issues{/number}", + "pulls_url": "https://api.github.com/repos/takeisa/nand2tetris-project/pulls{/number}", + "milestones_url": "https://api.github.com/repos/takeisa/nand2tetris-project/milestones{/number}", + "notifications_url": "https://api.github.com/repos/takeisa/nand2tetris-project/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/takeisa/nand2tetris-project/labels{/name}", + "releases_url": "https://api.github.com/repos/takeisa/nand2tetris-project/releases{/id}", + "deployments_url": "https://api.github.com/repos/takeisa/nand2tetris-project/deployments", + "created_at": "2015-04-04T09:05:04Z", + "updated_at": "2015-04-19T12:51:09Z", + "pushed_at": "2015-04-19T12:51:09Z", + "git_url": "git://github.com/takeisa/nand2tetris-project.git", + "ssh_url": "git@github.com:takeisa/nand2tetris-project.git", + "clone_url": "https://github.com/takeisa/nand2tetris-project.git", + "svn_url": "https://github.com/takeisa/nand2tetris-project", + "homepage": null, + "size": 312, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.935171 + }, + { + "id": 44459942, + "name": "nand2tetris", + "full_name": "landretk/nand2tetris", + "owner": { + "login": "landretk", + "id": 4535529, + "avatar_url": "https://avatars.githubusercontent.com/u/4535529?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/landretk", + "html_url": "https://github.com/landretk", + "followers_url": "https://api.github.com/users/landretk/followers", + "following_url": "https://api.github.com/users/landretk/following{/other_user}", + "gists_url": "https://api.github.com/users/landretk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/landretk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/landretk/subscriptions", + "organizations_url": "https://api.github.com/users/landretk/orgs", + "repos_url": "https://api.github.com/users/landretk/repos", + "events_url": "https://api.github.com/users/landretk/events{/privacy}", + "received_events_url": "https://api.github.com/users/landretk/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/landretk/nand2tetris", + "description": "Coursework for Nand To Tetris", + "fork": false, + "url": "https://api.github.com/repos/landretk/nand2tetris", + "forks_url": "https://api.github.com/repos/landretk/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/landretk/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/landretk/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/landretk/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/landretk/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/landretk/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/landretk/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/landretk/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/landretk/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/landretk/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/landretk/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/landretk/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/landretk/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/landretk/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/landretk/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/landretk/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/landretk/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/landretk/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/landretk/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/landretk/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/landretk/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/landretk/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/landretk/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/landretk/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/landretk/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/landretk/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/landretk/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/landretk/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/landretk/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/landretk/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/landretk/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/landretk/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/landretk/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/landretk/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/landretk/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/landretk/nand2tetris/deployments", + "created_at": "2015-10-18T00:33:44Z", + "updated_at": "2015-10-18T00:34:59Z", + "pushed_at": "2015-10-29T21:35:34Z", + "git_url": "git://github.com/landretk/nand2tetris.git", + "ssh_url": "git@github.com:landretk/nand2tetris.git", + "clone_url": "https://github.com/landretk/nand2tetris.git", + "svn_url": "https://github.com/landretk/nand2tetris", + "homepage": null, + "size": 344, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.935171 + }, + { + "id": 41434197, + "name": "crcp2330", + "full_name": "rschmidt347/crcp2330", + "owner": { + "login": "rschmidt347", + "id": 13955065, + "avatar_url": "https://avatars.githubusercontent.com/u/13955065?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rschmidt347", + "html_url": "https://github.com/rschmidt347", + "followers_url": "https://api.github.com/users/rschmidt347/followers", + "following_url": "https://api.github.com/users/rschmidt347/following{/other_user}", + "gists_url": "https://api.github.com/users/rschmidt347/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rschmidt347/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rschmidt347/subscriptions", + "organizations_url": "https://api.github.com/users/rschmidt347/orgs", + "repos_url": "https://api.github.com/users/rschmidt347/repos", + "events_url": "https://api.github.com/users/rschmidt347/events{/privacy}", + "received_events_url": "https://api.github.com/users/rschmidt347/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rschmidt347/crcp2330", + "description": "Work for Nand to Tetris", + "fork": false, + "url": "https://api.github.com/repos/rschmidt347/crcp2330", + "forks_url": "https://api.github.com/repos/rschmidt347/crcp2330/forks", + "keys_url": "https://api.github.com/repos/rschmidt347/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rschmidt347/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rschmidt347/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/rschmidt347/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/rschmidt347/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/rschmidt347/crcp2330/events", + "assignees_url": "https://api.github.com/repos/rschmidt347/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/rschmidt347/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/rschmidt347/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/rschmidt347/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rschmidt347/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rschmidt347/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rschmidt347/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rschmidt347/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rschmidt347/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/rschmidt347/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/rschmidt347/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/rschmidt347/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/rschmidt347/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/rschmidt347/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rschmidt347/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rschmidt347/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rschmidt347/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rschmidt347/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/rschmidt347/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rschmidt347/crcp2330/merges", + "archive_url": "https://api.github.com/repos/rschmidt347/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rschmidt347/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/rschmidt347/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/rschmidt347/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rschmidt347/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rschmidt347/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rschmidt347/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/rschmidt347/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/rschmidt347/crcp2330/deployments", + "created_at": "2015-08-26T15:39:55Z", + "updated_at": "2015-08-29T06:15:59Z", + "pushed_at": "2015-12-02T18:53:38Z", + "git_url": "git://github.com/rschmidt347/crcp2330.git", + "ssh_url": "git@github.com:rschmidt347/crcp2330.git", + "clone_url": "https://github.com/rschmidt347/crcp2330.git", + "svn_url": "https://github.com/rschmidt347/crcp2330", + "homepage": null, + "size": 179, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.935171 + }, + { + "id": 53330407, + "name": "Nand2Tetris", + "full_name": "OppenheimerAndTheMartians/Nand2Tetris", + "owner": { + "login": "OppenheimerAndTheMartians", + "id": 6571778, + "avatar_url": "https://avatars.githubusercontent.com/u/6571778?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/OppenheimerAndTheMartians", + "html_url": "https://github.com/OppenheimerAndTheMartians", + "followers_url": "https://api.github.com/users/OppenheimerAndTheMartians/followers", + "following_url": "https://api.github.com/users/OppenheimerAndTheMartians/following{/other_user}", + "gists_url": "https://api.github.com/users/OppenheimerAndTheMartians/gists{/gist_id}", + "starred_url": "https://api.github.com/users/OppenheimerAndTheMartians/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/OppenheimerAndTheMartians/subscriptions", + "organizations_url": "https://api.github.com/users/OppenheimerAndTheMartians/orgs", + "repos_url": "https://api.github.com/users/OppenheimerAndTheMartians/repos", + "events_url": "https://api.github.com/users/OppenheimerAndTheMartians/events{/privacy}", + "received_events_url": "https://api.github.com/users/OppenheimerAndTheMartians/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/OppenheimerAndTheMartians/Nand2Tetris", + "description": "From Nand To Tetris code", + "fork": false, + "url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris", + "forks_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/OppenheimerAndTheMartians/Nand2Tetris/deployments", + "created_at": "2016-03-07T14:11:11Z", + "updated_at": "2016-03-07T14:35:37Z", + "pushed_at": "2016-04-03T22:49:53Z", + "git_url": "git://github.com/OppenheimerAndTheMartians/Nand2Tetris.git", + "ssh_url": "git@github.com:OppenheimerAndTheMartians/Nand2Tetris.git", + "clone_url": "https://github.com/OppenheimerAndTheMartians/Nand2Tetris.git", + "svn_url": "https://github.com/OppenheimerAndTheMartians/Nand2Tetris", + "homepage": null, + "size": 227, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.935171 + }, + { + "id": 49641500, + "name": "from-nand-to-tetris-I", + "full_name": "mottosso/from-nand-to-tetris-I", + "owner": { + "login": "mottosso", + "id": 2152766, + "avatar_url": "https://avatars.githubusercontent.com/u/2152766?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mottosso", + "html_url": "https://github.com/mottosso", + "followers_url": "https://api.github.com/users/mottosso/followers", + "following_url": "https://api.github.com/users/mottosso/following{/other_user}", + "gists_url": "https://api.github.com/users/mottosso/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mottosso/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mottosso/subscriptions", + "organizations_url": "https://api.github.com/users/mottosso/orgs", + "repos_url": "https://api.github.com/users/mottosso/repos", + "events_url": "https://api.github.com/users/mottosso/events{/privacy}", + "received_events_url": "https://api.github.com/users/mottosso/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mottosso/from-nand-to-tetris-I", + "description": "From NAND to Tetris I", + "fork": false, + "url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I", + "forks_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/forks", + "keys_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/teams", + "hooks_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/hooks", + "issue_events_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/issues/events{/number}", + "events_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/events", + "assignees_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/assignees{/user}", + "branches_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/branches{/branch}", + "tags_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/tags", + "blobs_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/languages", + "stargazers_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/stargazers", + "contributors_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/contributors", + "subscribers_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/subscribers", + "subscription_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/subscription", + "commits_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/contents/{+path}", + "compare_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/merges", + "archive_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/downloads", + "issues_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/issues{/number}", + "pulls_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/labels{/name}", + "releases_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/releases{/id}", + "deployments_url": "https://api.github.com/repos/mottosso/from-nand-to-tetris-I/deployments", + "created_at": "2016-01-14T10:50:06Z", + "updated_at": "2016-01-14T13:13:25Z", + "pushed_at": "2016-05-08T11:49:40Z", + "git_url": "git://github.com/mottosso/from-nand-to-tetris-I.git", + "ssh_url": "git@github.com:mottosso/from-nand-to-tetris-I.git", + "clone_url": "https://github.com/mottosso/from-nand-to-tetris-I.git", + "svn_url": "https://github.com/mottosso/from-nand-to-tetris-I", + "homepage": null, + "size": 216, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.935171 + }, + { + "id": 7613729, + "name": "nand2tetris", + "full_name": "alexpaulzor/nand2tetris", + "owner": { + "login": "alexpaulzor", + "id": 150549, + "avatar_url": "https://avatars.githubusercontent.com/u/150549?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/alexpaulzor", + "html_url": "https://github.com/alexpaulzor", + "followers_url": "https://api.github.com/users/alexpaulzor/followers", + "following_url": "https://api.github.com/users/alexpaulzor/following{/other_user}", + "gists_url": "https://api.github.com/users/alexpaulzor/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alexpaulzor/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alexpaulzor/subscriptions", + "organizations_url": "https://api.github.com/users/alexpaulzor/orgs", + "repos_url": "https://api.github.com/users/alexpaulzor/repos", + "events_url": "https://api.github.com/users/alexpaulzor/events{/privacy}", + "received_events_url": "https://api.github.com/users/alexpaulzor/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/alexpaulzor/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/alexpaulzor/nand2tetris", + "forks_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/alexpaulzor/nand2tetris/deployments", + "created_at": "2013-01-14T22:10:58Z", + "updated_at": "2013-09-29T17:34:52Z", + "pushed_at": "2013-02-17T00:51:10Z", + "git_url": "git://github.com/alexpaulzor/nand2tetris.git", + "ssh_url": "git@github.com:alexpaulzor/nand2tetris.git", + "clone_url": "https://github.com/alexpaulzor/nand2tetris.git", + "svn_url": "https://github.com/alexpaulzor/nand2tetris", + "homepage": null, + "size": 651, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.649681 + }, + { + "id": 41434195, + "name": "crcp2330", + "full_name": "hambethany1/crcp2330", + "owner": { + "login": "hambethany1", + "id": 11997875, + "avatar_url": "https://avatars.githubusercontent.com/u/11997875?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hambethany1", + "html_url": "https://github.com/hambethany1", + "followers_url": "https://api.github.com/users/hambethany1/followers", + "following_url": "https://api.github.com/users/hambethany1/following{/other_user}", + "gists_url": "https://api.github.com/users/hambethany1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hambethany1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hambethany1/subscriptions", + "organizations_url": "https://api.github.com/users/hambethany1/orgs", + "repos_url": "https://api.github.com/users/hambethany1/repos", + "events_url": "https://api.github.com/users/hambethany1/events{/privacy}", + "received_events_url": "https://api.github.com/users/hambethany1/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hambethany1/crcp2330", + "description": "My work for Nand to Tetris", + "fork": false, + "url": "https://api.github.com/repos/hambethany1/crcp2330", + "forks_url": "https://api.github.com/repos/hambethany1/crcp2330/forks", + "keys_url": "https://api.github.com/repos/hambethany1/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hambethany1/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hambethany1/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/hambethany1/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/hambethany1/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/hambethany1/crcp2330/events", + "assignees_url": "https://api.github.com/repos/hambethany1/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/hambethany1/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/hambethany1/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/hambethany1/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hambethany1/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hambethany1/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hambethany1/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hambethany1/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hambethany1/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/hambethany1/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/hambethany1/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/hambethany1/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/hambethany1/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/hambethany1/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hambethany1/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hambethany1/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hambethany1/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hambethany1/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/hambethany1/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hambethany1/crcp2330/merges", + "archive_url": "https://api.github.com/repos/hambethany1/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hambethany1/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/hambethany1/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/hambethany1/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hambethany1/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hambethany1/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hambethany1/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/hambethany1/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/hambethany1/crcp2330/deployments", + "created_at": "2015-08-26T15:39:55Z", + "updated_at": "2015-08-28T15:19:44Z", + "pushed_at": "2015-12-10T21:56:42Z", + "git_url": "git://github.com/hambethany1/crcp2330.git", + "ssh_url": "git@github.com:hambethany1/crcp2330.git", + "clone_url": "https://github.com/hambethany1/crcp2330.git", + "svn_url": "https://github.com/hambethany1/crcp2330", + "homepage": null, + "size": 190, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.1283703 + }, + { + "id": 41434200, + "name": "crcp2330", + "full_name": "matthewLee711/crcp2330", + "owner": { + "login": "matthewLee711", + "id": 9796894, + "avatar_url": "https://avatars.githubusercontent.com/u/9796894?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/matthewLee711", + "html_url": "https://github.com/matthewLee711", + "followers_url": "https://api.github.com/users/matthewLee711/followers", + "following_url": "https://api.github.com/users/matthewLee711/following{/other_user}", + "gists_url": "https://api.github.com/users/matthewLee711/gists{/gist_id}", + "starred_url": "https://api.github.com/users/matthewLee711/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/matthewLee711/subscriptions", + "organizations_url": "https://api.github.com/users/matthewLee711/orgs", + "repos_url": "https://api.github.com/users/matthewLee711/repos", + "events_url": "https://api.github.com/users/matthewLee711/events{/privacy}", + "received_events_url": "https://api.github.com/users/matthewLee711/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/matthewLee711/crcp2330", + "description": "My work in Nand to Tetris", + "fork": false, + "url": "https://api.github.com/repos/matthewLee711/crcp2330", + "forks_url": "https://api.github.com/repos/matthewLee711/crcp2330/forks", + "keys_url": "https://api.github.com/repos/matthewLee711/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/matthewLee711/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/matthewLee711/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/matthewLee711/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/matthewLee711/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/matthewLee711/crcp2330/events", + "assignees_url": "https://api.github.com/repos/matthewLee711/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/matthewLee711/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/matthewLee711/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/matthewLee711/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/matthewLee711/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/matthewLee711/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/matthewLee711/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/matthewLee711/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/matthewLee711/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/matthewLee711/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/matthewLee711/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/matthewLee711/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/matthewLee711/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/matthewLee711/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/matthewLee711/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/matthewLee711/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/matthewLee711/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/matthewLee711/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/matthewLee711/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/matthewLee711/crcp2330/merges", + "archive_url": "https://api.github.com/repos/matthewLee711/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/matthewLee711/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/matthewLee711/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/matthewLee711/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/matthewLee711/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/matthewLee711/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/matthewLee711/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/matthewLee711/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/matthewLee711/crcp2330/deployments", + "created_at": "2015-08-26T15:39:56Z", + "updated_at": "2015-08-28T02:40:52Z", + "pushed_at": "2015-12-10T10:14:40Z", + "git_url": "git://github.com/matthewLee711/crcp2330.git", + "ssh_url": "git@github.com:matthewLee711/crcp2330.git", + "clone_url": "https://github.com/matthewLee711/crcp2330.git", + "svn_url": "https://github.com/matthewLee711/crcp2330", + "homepage": null, + "size": 185, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.1187496 + }, + { + "id": 40453756, + "name": "tetris26", + "full_name": "udibr/tetris26", + "owner": { + "login": "udibr", + "id": 608789, + "avatar_url": "https://avatars.githubusercontent.com/u/608789?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/udibr", + "html_url": "https://github.com/udibr", + "followers_url": "https://api.github.com/users/udibr/followers", + "following_url": "https://api.github.com/users/udibr/following{/other_user}", + "gists_url": "https://api.github.com/users/udibr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/udibr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/udibr/subscriptions", + "organizations_url": "https://api.github.com/users/udibr/orgs", + "repos_url": "https://api.github.com/users/udibr/repos", + "events_url": "https://api.github.com/users/udibr/events{/privacy}", + "received_events_url": "https://api.github.com/users/udibr/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/udibr/tetris26", + "description": "Tetris bin for Atari 2600 and Stella ", + "fork": false, + "url": "https://api.github.com/repos/udibr/tetris26", + "forks_url": "https://api.github.com/repos/udibr/tetris26/forks", + "keys_url": "https://api.github.com/repos/udibr/tetris26/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/udibr/tetris26/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/udibr/tetris26/teams", + "hooks_url": "https://api.github.com/repos/udibr/tetris26/hooks", + "issue_events_url": "https://api.github.com/repos/udibr/tetris26/issues/events{/number}", + "events_url": "https://api.github.com/repos/udibr/tetris26/events", + "assignees_url": "https://api.github.com/repos/udibr/tetris26/assignees{/user}", + "branches_url": "https://api.github.com/repos/udibr/tetris26/branches{/branch}", + "tags_url": "https://api.github.com/repos/udibr/tetris26/tags", + "blobs_url": "https://api.github.com/repos/udibr/tetris26/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/udibr/tetris26/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/udibr/tetris26/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/udibr/tetris26/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/udibr/tetris26/statuses/{sha}", + "languages_url": "https://api.github.com/repos/udibr/tetris26/languages", + "stargazers_url": "https://api.github.com/repos/udibr/tetris26/stargazers", + "contributors_url": "https://api.github.com/repos/udibr/tetris26/contributors", + "subscribers_url": "https://api.github.com/repos/udibr/tetris26/subscribers", + "subscription_url": "https://api.github.com/repos/udibr/tetris26/subscription", + "commits_url": "https://api.github.com/repos/udibr/tetris26/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/udibr/tetris26/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/udibr/tetris26/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/udibr/tetris26/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/udibr/tetris26/contents/{+path}", + "compare_url": "https://api.github.com/repos/udibr/tetris26/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/udibr/tetris26/merges", + "archive_url": "https://api.github.com/repos/udibr/tetris26/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/udibr/tetris26/downloads", + "issues_url": "https://api.github.com/repos/udibr/tetris26/issues{/number}", + "pulls_url": "https://api.github.com/repos/udibr/tetris26/pulls{/number}", + "milestones_url": "https://api.github.com/repos/udibr/tetris26/milestones{/number}", + "notifications_url": "https://api.github.com/repos/udibr/tetris26/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/udibr/tetris26/labels{/name}", + "releases_url": "https://api.github.com/repos/udibr/tetris26/releases{/id}", + "deployments_url": "https://api.github.com/repos/udibr/tetris26/deployments", + "created_at": "2015-08-09T23:13:26Z", + "updated_at": "2015-08-12T20:46:45Z", + "pushed_at": "2015-08-10T20:11:46Z", + "git_url": "git://github.com/udibr/tetris26.git", + "ssh_url": "git@github.com:udibr/tetris26.git", + "clone_url": "https://github.com/udibr/tetris26.git", + "svn_url": "https://github.com/udibr/tetris26", + "homepage": "", + "size": 144, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 1, + "forks": 0, + "open_issues": 1, + "watchers": 0, + "default_branch": "master", + "score": 5.1069784 + }, + { + "id": 41434196, + "name": "crcp2330", + "full_name": "sadiedonnelly/crcp2330", + "owner": { + "login": "sadiedonnelly", + "id": 13947637, + "avatar_url": "https://avatars.githubusercontent.com/u/13947637?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sadiedonnelly", + "html_url": "https://github.com/sadiedonnelly", + "followers_url": "https://api.github.com/users/sadiedonnelly/followers", + "following_url": "https://api.github.com/users/sadiedonnelly/following{/other_user}", + "gists_url": "https://api.github.com/users/sadiedonnelly/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sadiedonnelly/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sadiedonnelly/subscriptions", + "organizations_url": "https://api.github.com/users/sadiedonnelly/orgs", + "repos_url": "https://api.github.com/users/sadiedonnelly/repos", + "events_url": "https://api.github.com/users/sadiedonnelly/events{/privacy}", + "received_events_url": "https://api.github.com/users/sadiedonnelly/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sadiedonnelly/crcp2330", + "description": "My work for NAND to Tetris", + "fork": false, + "url": "https://api.github.com/repos/sadiedonnelly/crcp2330", + "forks_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/forks", + "keys_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/teams", + "hooks_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/hooks", + "issue_events_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/issues/events{/number}", + "events_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/events", + "assignees_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/assignees{/user}", + "branches_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/branches{/branch}", + "tags_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/tags", + "blobs_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/languages", + "stargazers_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/stargazers", + "contributors_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/contributors", + "subscribers_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/subscribers", + "subscription_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/subscription", + "commits_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/contents/{+path}", + "compare_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/merges", + "archive_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/downloads", + "issues_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/issues{/number}", + "pulls_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/labels{/name}", + "releases_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/releases{/id}", + "deployments_url": "https://api.github.com/repos/sadiedonnelly/crcp2330/deployments", + "created_at": "2015-08-26T15:39:55Z", + "updated_at": "2015-08-26T16:45:07Z", + "pushed_at": "2015-12-10T20:48:04Z", + "git_url": "git://github.com/sadiedonnelly/crcp2330.git", + "ssh_url": "git@github.com:sadiedonnelly/crcp2330.git", + "clone_url": "https://github.com/sadiedonnelly/crcp2330.git", + "svn_url": "https://github.com/sadiedonnelly/crcp2330", + "homepage": null, + "size": 194, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 5.1069784 + }, + { + "id": 7912192, + "name": "TetrisASM", + "full_name": "BuzzVII/TetrisASM", + "owner": { + "login": "BuzzVII", + "id": 3426214, + "avatar_url": "https://avatars.githubusercontent.com/u/3426214?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/BuzzVII", + "html_url": "https://github.com/BuzzVII", + "followers_url": "https://api.github.com/users/BuzzVII/followers", + "following_url": "https://api.github.com/users/BuzzVII/following{/other_user}", + "gists_url": "https://api.github.com/users/BuzzVII/gists{/gist_id}", + "starred_url": "https://api.github.com/users/BuzzVII/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/BuzzVII/subscriptions", + "organizations_url": "https://api.github.com/users/BuzzVII/orgs", + "repos_url": "https://api.github.com/users/BuzzVII/repos", + "events_url": "https://api.github.com/users/BuzzVII/events{/privacy}", + "received_events_url": "https://api.github.com/users/BuzzVII/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/BuzzVII/TetrisASM", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/BuzzVII/TetrisASM", + "forks_url": "https://api.github.com/repos/BuzzVII/TetrisASM/forks", + "keys_url": "https://api.github.com/repos/BuzzVII/TetrisASM/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/BuzzVII/TetrisASM/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/BuzzVII/TetrisASM/teams", + "hooks_url": "https://api.github.com/repos/BuzzVII/TetrisASM/hooks", + "issue_events_url": "https://api.github.com/repos/BuzzVII/TetrisASM/issues/events{/number}", + "events_url": "https://api.github.com/repos/BuzzVII/TetrisASM/events", + "assignees_url": "https://api.github.com/repos/BuzzVII/TetrisASM/assignees{/user}", + "branches_url": "https://api.github.com/repos/BuzzVII/TetrisASM/branches{/branch}", + "tags_url": "https://api.github.com/repos/BuzzVII/TetrisASM/tags", + "blobs_url": "https://api.github.com/repos/BuzzVII/TetrisASM/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/BuzzVII/TetrisASM/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/BuzzVII/TetrisASM/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/BuzzVII/TetrisASM/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/BuzzVII/TetrisASM/statuses/{sha}", + "languages_url": "https://api.github.com/repos/BuzzVII/TetrisASM/languages", + "stargazers_url": "https://api.github.com/repos/BuzzVII/TetrisASM/stargazers", + "contributors_url": "https://api.github.com/repos/BuzzVII/TetrisASM/contributors", + "subscribers_url": "https://api.github.com/repos/BuzzVII/TetrisASM/subscribers", + "subscription_url": "https://api.github.com/repos/BuzzVII/TetrisASM/subscription", + "commits_url": "https://api.github.com/repos/BuzzVII/TetrisASM/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/BuzzVII/TetrisASM/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/BuzzVII/TetrisASM/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/BuzzVII/TetrisASM/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/BuzzVII/TetrisASM/contents/{+path}", + "compare_url": "https://api.github.com/repos/BuzzVII/TetrisASM/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/BuzzVII/TetrisASM/merges", + "archive_url": "https://api.github.com/repos/BuzzVII/TetrisASM/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/BuzzVII/TetrisASM/downloads", + "issues_url": "https://api.github.com/repos/BuzzVII/TetrisASM/issues{/number}", + "pulls_url": "https://api.github.com/repos/BuzzVII/TetrisASM/pulls{/number}", + "milestones_url": "https://api.github.com/repos/BuzzVII/TetrisASM/milestones{/number}", + "notifications_url": "https://api.github.com/repos/BuzzVII/TetrisASM/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/BuzzVII/TetrisASM/labels{/name}", + "releases_url": "https://api.github.com/repos/BuzzVII/TetrisASM/releases{/id}", + "deployments_url": "https://api.github.com/repos/BuzzVII/TetrisASM/deployments", + "created_at": "2013-01-30T10:09:17Z", + "updated_at": "2014-04-03T16:00:02Z", + "pushed_at": "2013-01-30T10:35:01Z", + "git_url": "git://github.com/BuzzVII/TetrisASM.git", + "ssh_url": "git@github.com:BuzzVII/TetrisASM.git", + "clone_url": "https://github.com/BuzzVII/TetrisASM.git", + "svn_url": "https://github.com/BuzzVII/TetrisASM", + "homepage": null, + "size": 112, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.5530896 + }, + { + "id": 34637237, + "name": "nand2tetris", + "full_name": "andreoliva/nand2tetris", + "owner": { + "login": "andreoliva", + "id": 2464037, + "avatar_url": "https://avatars.githubusercontent.com/u/2464037?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andreoliva", + "html_url": "https://github.com/andreoliva", + "followers_url": "https://api.github.com/users/andreoliva/followers", + "following_url": "https://api.github.com/users/andreoliva/following{/other_user}", + "gists_url": "https://api.github.com/users/andreoliva/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreoliva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreoliva/subscriptions", + "organizations_url": "https://api.github.com/users/andreoliva/orgs", + "repos_url": "https://api.github.com/users/andreoliva/repos", + "events_url": "https://api.github.com/users/andreoliva/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreoliva/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/andreoliva/nand2tetris", + "description": "Files from Coursera's \"Nand to Tetris\" course.", + "fork": false, + "url": "https://api.github.com/repos/andreoliva/nand2tetris", + "forks_url": "https://api.github.com/repos/andreoliva/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/andreoliva/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/andreoliva/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/andreoliva/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/andreoliva/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/andreoliva/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/andreoliva/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/andreoliva/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/andreoliva/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/andreoliva/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/andreoliva/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/andreoliva/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/andreoliva/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/andreoliva/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/andreoliva/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/andreoliva/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/andreoliva/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/andreoliva/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/andreoliva/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/andreoliva/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/andreoliva/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/andreoliva/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/andreoliva/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/andreoliva/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/andreoliva/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/andreoliva/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/andreoliva/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/andreoliva/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/andreoliva/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/andreoliva/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/andreoliva/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/andreoliva/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/andreoliva/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/andreoliva/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/andreoliva/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/andreoliva/nand2tetris/deployments", + "created_at": "2015-04-27T00:05:51Z", + "updated_at": "2015-11-19T16:59:14Z", + "pushed_at": "2015-05-25T03:52:49Z", + "git_url": "git://github.com/andreoliva/nand2tetris.git", + "ssh_url": "git@github.com:andreoliva/nand2tetris.git", + "clone_url": "https://github.com/andreoliva/nand2tetris.git", + "svn_url": "https://github.com/andreoliva/nand2tetris", + "homepage": "", + "size": 676, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.273642 + }, + { + "id": 7260682, + "name": "LL-Asm-tetris", + "full_name": "FTwO-O/LL-Asm-tetris", + "owner": { + "login": "FTwO-O", + "id": 750207, + "avatar_url": "https://avatars.githubusercontent.com/u/750207?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/FTwO-O", + "html_url": "https://github.com/FTwO-O", + "followers_url": "https://api.github.com/users/FTwO-O/followers", + "following_url": "https://api.github.com/users/FTwO-O/following{/other_user}", + "gists_url": "https://api.github.com/users/FTwO-O/gists{/gist_id}", + "starred_url": "https://api.github.com/users/FTwO-O/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/FTwO-O/subscriptions", + "organizations_url": "https://api.github.com/users/FTwO-O/orgs", + "repos_url": "https://api.github.com/users/FTwO-O/repos", + "events_url": "https://api.github.com/users/FTwO-O/events{/privacy}", + "received_events_url": "https://api.github.com/users/FTwO-O/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/FTwO-O/LL-Asm-tetris", + "description": "ASM implentation of tetris game, for Assembly language learning.", + "fork": false, + "url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris", + "forks_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/forks", + "keys_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/teams", + "hooks_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/hooks", + "issue_events_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/events", + "assignees_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/tags", + "blobs_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/languages", + "stargazers_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/stargazers", + "contributors_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/contributors", + "subscribers_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/subscribers", + "subscription_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/subscription", + "commits_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/merges", + "archive_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/downloads", + "issues_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/FTwO-O/LL-Asm-tetris/deployments", + "created_at": "2012-12-20T16:28:14Z", + "updated_at": "2016-03-08T14:43:27Z", + "pushed_at": "2012-12-20T16:34:26Z", + "git_url": "git://github.com/FTwO-O/LL-Asm-tetris.git", + "ssh_url": "git@github.com:FTwO-O/LL-Asm-tetris.git", + "clone_url": "https://github.com/FTwO-O/LL-Asm-tetris.git", + "svn_url": "https://github.com/FTwO-O/LL-Asm-tetris", + "homepage": "", + "size": 375, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.273642 + }, + { + "id": 10775059, + "name": "NAND2Tetris", + "full_name": "zpartal/NAND2Tetris", + "owner": { + "login": "zpartal", + "id": 1432346, + "avatar_url": "https://avatars.githubusercontent.com/u/1432346?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zpartal", + "html_url": "https://github.com/zpartal", + "followers_url": "https://api.github.com/users/zpartal/followers", + "following_url": "https://api.github.com/users/zpartal/following{/other_user}", + "gists_url": "https://api.github.com/users/zpartal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zpartal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zpartal/subscriptions", + "organizations_url": "https://api.github.com/users/zpartal/orgs", + "repos_url": "https://api.github.com/users/zpartal/repos", + "events_url": "https://api.github.com/users/zpartal/events{/privacy}", + "received_events_url": "https://api.github.com/users/zpartal/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/zpartal/NAND2Tetris", + "description": "All my code for the NAND 2 Tetris project. ", + "fork": false, + "url": "https://api.github.com/repos/zpartal/NAND2Tetris", + "forks_url": "https://api.github.com/repos/zpartal/NAND2Tetris/forks", + "keys_url": "https://api.github.com/repos/zpartal/NAND2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zpartal/NAND2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zpartal/NAND2Tetris/teams", + "hooks_url": "https://api.github.com/repos/zpartal/NAND2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/zpartal/NAND2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/zpartal/NAND2Tetris/events", + "assignees_url": "https://api.github.com/repos/zpartal/NAND2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/zpartal/NAND2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/zpartal/NAND2Tetris/tags", + "blobs_url": "https://api.github.com/repos/zpartal/NAND2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zpartal/NAND2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zpartal/NAND2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zpartal/NAND2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zpartal/NAND2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zpartal/NAND2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/zpartal/NAND2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/zpartal/NAND2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/zpartal/NAND2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/zpartal/NAND2Tetris/subscription", + "commits_url": "https://api.github.com/repos/zpartal/NAND2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zpartal/NAND2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zpartal/NAND2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zpartal/NAND2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zpartal/NAND2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/zpartal/NAND2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zpartal/NAND2Tetris/merges", + "archive_url": "https://api.github.com/repos/zpartal/NAND2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zpartal/NAND2Tetris/downloads", + "issues_url": "https://api.github.com/repos/zpartal/NAND2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/zpartal/NAND2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zpartal/NAND2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zpartal/NAND2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zpartal/NAND2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/zpartal/NAND2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/zpartal/NAND2Tetris/deployments", + "created_at": "2013-06-18T22:37:22Z", + "updated_at": "2013-12-16T03:59:44Z", + "pushed_at": "2013-12-16T03:59:43Z", + "git_url": "git://github.com/zpartal/NAND2Tetris.git", + "ssh_url": "git@github.com:zpartal/NAND2Tetris.git", + "clone_url": "https://github.com/zpartal/NAND2Tetris.git", + "svn_url": "https://github.com/zpartal/NAND2Tetris", + "homepage": "", + "size": 300, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 26594118, + "name": "nand2Tetris", + "full_name": "mfbadr/nand2Tetris", + "owner": { + "login": "mfbadr", + "id": 8029306, + "avatar_url": "https://avatars.githubusercontent.com/u/8029306?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mfbadr", + "html_url": "https://github.com/mfbadr", + "followers_url": "https://api.github.com/users/mfbadr/followers", + "following_url": "https://api.github.com/users/mfbadr/following{/other_user}", + "gists_url": "https://api.github.com/users/mfbadr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mfbadr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mfbadr/subscriptions", + "organizations_url": "https://api.github.com/users/mfbadr/orgs", + "repos_url": "https://api.github.com/users/mfbadr/repos", + "events_url": "https://api.github.com/users/mfbadr/events{/privacy}", + "received_events_url": "https://api.github.com/users/mfbadr/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mfbadr/nand2Tetris", + "description": "Working through a CS course, building tetris starting from NAND", + "fork": false, + "url": "https://api.github.com/repos/mfbadr/nand2Tetris", + "forks_url": "https://api.github.com/repos/mfbadr/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/mfbadr/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mfbadr/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mfbadr/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/mfbadr/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mfbadr/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mfbadr/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/mfbadr/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mfbadr/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mfbadr/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/mfbadr/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mfbadr/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mfbadr/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mfbadr/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mfbadr/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mfbadr/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/mfbadr/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mfbadr/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mfbadr/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mfbadr/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/mfbadr/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mfbadr/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mfbadr/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mfbadr/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mfbadr/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mfbadr/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mfbadr/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/mfbadr/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mfbadr/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/mfbadr/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mfbadr/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mfbadr/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mfbadr/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mfbadr/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mfbadr/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mfbadr/nand2Tetris/deployments", + "created_at": "2014-11-13T15:28:32Z", + "updated_at": "2014-11-13T15:29:38Z", + "pushed_at": "2014-11-13T15:29:38Z", + "git_url": "git://github.com/mfbadr/nand2Tetris.git", + "ssh_url": "git@github.com:mfbadr/nand2Tetris.git", + "clone_url": "https://github.com/mfbadr/nand2Tetris.git", + "svn_url": "https://github.com/mfbadr/nand2Tetris", + "homepage": null, + "size": 616, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 44864853, + "name": "FromNandToTetris", + "full_name": "Neal-liu/FromNandToTetris", + "owner": { + "login": "Neal-liu", + "id": 5592660, + "avatar_url": "https://avatars.githubusercontent.com/u/5592660?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Neal-liu", + "html_url": "https://github.com/Neal-liu", + "followers_url": "https://api.github.com/users/Neal-liu/followers", + "following_url": "https://api.github.com/users/Neal-liu/following{/other_user}", + "gists_url": "https://api.github.com/users/Neal-liu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Neal-liu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Neal-liu/subscriptions", + "organizations_url": "https://api.github.com/users/Neal-liu/orgs", + "repos_url": "https://api.github.com/users/Neal-liu/repos", + "events_url": "https://api.github.com/users/Neal-liu/events{/privacy}", + "received_events_url": "https://api.github.com/users/Neal-liu/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Neal-liu/FromNandToTetris", + "description": "projects from coursera course : From Nand to Tetris", + "fork": false, + "url": "https://api.github.com/repos/Neal-liu/FromNandToTetris", + "forks_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/forks", + "keys_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/teams", + "hooks_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/events", + "assignees_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/tags", + "blobs_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/subscription", + "commits_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/merges", + "archive_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/downloads", + "issues_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Neal-liu/FromNandToTetris/deployments", + "created_at": "2015-10-24T12:21:34Z", + "updated_at": "2015-10-24T12:31:10Z", + "pushed_at": "2015-10-24T12:31:09Z", + "git_url": "git://github.com/Neal-liu/FromNandToTetris.git", + "ssh_url": "git@github.com:Neal-liu/FromNandToTetris.git", + "clone_url": "https://github.com/Neal-liu/FromNandToTetris.git", + "svn_url": "https://github.com/Neal-liu/FromNandToTetris", + "homepage": null, + "size": 276, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 52502116, + "name": "ComputerSimulator", + "full_name": "melvyniandrag/ComputerSimulator", + "owner": { + "login": "melvyniandrag", + "id": 17210565, + "avatar_url": "https://avatars.githubusercontent.com/u/17210565?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/melvyniandrag", + "html_url": "https://github.com/melvyniandrag", + "followers_url": "https://api.github.com/users/melvyniandrag/followers", + "following_url": "https://api.github.com/users/melvyniandrag/following{/other_user}", + "gists_url": "https://api.github.com/users/melvyniandrag/gists{/gist_id}", + "starred_url": "https://api.github.com/users/melvyniandrag/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/melvyniandrag/subscriptions", + "organizations_url": "https://api.github.com/users/melvyniandrag/orgs", + "repos_url": "https://api.github.com/users/melvyniandrag/repos", + "events_url": "https://api.github.com/users/melvyniandrag/events{/privacy}", + "received_events_url": "https://api.github.com/users/melvyniandrag/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/melvyniandrag/ComputerSimulator", + "description": "Course work for the NAND to Tetris course one coursera.", + "fork": false, + "url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator", + "forks_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/forks", + "keys_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/teams", + "hooks_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/hooks", + "issue_events_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/issues/events{/number}", + "events_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/events", + "assignees_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/assignees{/user}", + "branches_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/branches{/branch}", + "tags_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/tags", + "blobs_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/statuses/{sha}", + "languages_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/languages", + "stargazers_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/stargazers", + "contributors_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/contributors", + "subscribers_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/subscribers", + "subscription_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/subscription", + "commits_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/contents/{+path}", + "compare_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/merges", + "archive_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/downloads", + "issues_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/issues{/number}", + "pulls_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/pulls{/number}", + "milestones_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/milestones{/number}", + "notifications_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/labels{/name}", + "releases_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/releases{/id}", + "deployments_url": "https://api.github.com/repos/melvyniandrag/ComputerSimulator/deployments", + "created_at": "2016-02-25T06:24:25Z", + "updated_at": "2016-02-25T06:25:04Z", + "pushed_at": "2016-02-25T06:25:02Z", + "git_url": "git://github.com/melvyniandrag/ComputerSimulator.git", + "ssh_url": "git@github.com:melvyniandrag/ComputerSimulator.git", + "clone_url": "https://github.com/melvyniandrag/ComputerSimulator.git", + "svn_url": "https://github.com/melvyniandrag/ComputerSimulator", + "homepage": null, + "size": 508, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 26361387, + "name": "hack-assembler", + "full_name": "malharhak2/hack-assembler", + "owner": { + "login": "malharhak2", + "id": 16116044, + "avatar_url": "https://avatars.githubusercontent.com/u/16116044?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/malharhak2", + "html_url": "https://github.com/malharhak2", + "followers_url": "https://api.github.com/users/malharhak2/followers", + "following_url": "https://api.github.com/users/malharhak2/following{/other_user}", + "gists_url": "https://api.github.com/users/malharhak2/gists{/gist_id}", + "starred_url": "https://api.github.com/users/malharhak2/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/malharhak2/subscriptions", + "organizations_url": "https://api.github.com/users/malharhak2/orgs", + "repos_url": "https://api.github.com/users/malharhak2/repos", + "events_url": "https://api.github.com/users/malharhak2/events{/privacy}", + "received_events_url": "https://api.github.com/users/malharhak2/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/malharhak2/hack-assembler", + "description": "The hack language assembler for the Nand 2 Tetris course", + "fork": false, + "url": "https://api.github.com/repos/malharhak2/hack-assembler", + "forks_url": "https://api.github.com/repos/malharhak2/hack-assembler/forks", + "keys_url": "https://api.github.com/repos/malharhak2/hack-assembler/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/malharhak2/hack-assembler/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/malharhak2/hack-assembler/teams", + "hooks_url": "https://api.github.com/repos/malharhak2/hack-assembler/hooks", + "issue_events_url": "https://api.github.com/repos/malharhak2/hack-assembler/issues/events{/number}", + "events_url": "https://api.github.com/repos/malharhak2/hack-assembler/events", + "assignees_url": "https://api.github.com/repos/malharhak2/hack-assembler/assignees{/user}", + "branches_url": "https://api.github.com/repos/malharhak2/hack-assembler/branches{/branch}", + "tags_url": "https://api.github.com/repos/malharhak2/hack-assembler/tags", + "blobs_url": "https://api.github.com/repos/malharhak2/hack-assembler/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/malharhak2/hack-assembler/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/malharhak2/hack-assembler/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/malharhak2/hack-assembler/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/malharhak2/hack-assembler/statuses/{sha}", + "languages_url": "https://api.github.com/repos/malharhak2/hack-assembler/languages", + "stargazers_url": "https://api.github.com/repos/malharhak2/hack-assembler/stargazers", + "contributors_url": "https://api.github.com/repos/malharhak2/hack-assembler/contributors", + "subscribers_url": "https://api.github.com/repos/malharhak2/hack-assembler/subscribers", + "subscription_url": "https://api.github.com/repos/malharhak2/hack-assembler/subscription", + "commits_url": "https://api.github.com/repos/malharhak2/hack-assembler/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/malharhak2/hack-assembler/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/malharhak2/hack-assembler/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/malharhak2/hack-assembler/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/malharhak2/hack-assembler/contents/{+path}", + "compare_url": "https://api.github.com/repos/malharhak2/hack-assembler/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/malharhak2/hack-assembler/merges", + "archive_url": "https://api.github.com/repos/malharhak2/hack-assembler/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/malharhak2/hack-assembler/downloads", + "issues_url": "https://api.github.com/repos/malharhak2/hack-assembler/issues{/number}", + "pulls_url": "https://api.github.com/repos/malharhak2/hack-assembler/pulls{/number}", + "milestones_url": "https://api.github.com/repos/malharhak2/hack-assembler/milestones{/number}", + "notifications_url": "https://api.github.com/repos/malharhak2/hack-assembler/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/malharhak2/hack-assembler/labels{/name}", + "releases_url": "https://api.github.com/repos/malharhak2/hack-assembler/releases{/id}", + "deployments_url": "https://api.github.com/repos/malharhak2/hack-assembler/deployments", + "created_at": "2014-11-08T13:30:26Z", + "updated_at": "2015-12-03T09:25:20Z", + "pushed_at": "2014-11-08T18:53:12Z", + "git_url": "git://github.com/malharhak2/hack-assembler.git", + "ssh_url": "git@github.com:malharhak2/hack-assembler.git", + "clone_url": "https://github.com/malharhak2/hack-assembler.git", + "svn_url": "https://github.com/malharhak2/hack-assembler", + "homepage": null, + "size": 152, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 59680916, + "name": "nand2tetris", + "full_name": "tanderegg/nand2tetris", + "owner": { + "login": "tanderegg", + "id": 100029, + "avatar_url": "https://avatars.githubusercontent.com/u/100029?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tanderegg", + "html_url": "https://github.com/tanderegg", + "followers_url": "https://api.github.com/users/tanderegg/followers", + "following_url": "https://api.github.com/users/tanderegg/following{/other_user}", + "gists_url": "https://api.github.com/users/tanderegg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tanderegg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tanderegg/subscriptions", + "organizations_url": "https://api.github.com/users/tanderegg/orgs", + "repos_url": "https://api.github.com/users/tanderegg/repos", + "events_url": "https://api.github.com/users/tanderegg/events{/privacy}", + "received_events_url": "https://api.github.com/users/tanderegg/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tanderegg/nand2tetris", + "description": "My coursework in the Nand to Tetris course", + "fork": false, + "url": "https://api.github.com/repos/tanderegg/nand2tetris", + "forks_url": "https://api.github.com/repos/tanderegg/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tanderegg/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tanderegg/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tanderegg/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tanderegg/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tanderegg/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tanderegg/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tanderegg/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tanderegg/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tanderegg/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tanderegg/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tanderegg/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tanderegg/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tanderegg/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tanderegg/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tanderegg/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tanderegg/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tanderegg/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tanderegg/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tanderegg/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tanderegg/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tanderegg/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tanderegg/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tanderegg/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tanderegg/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tanderegg/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tanderegg/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tanderegg/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tanderegg/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tanderegg/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tanderegg/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tanderegg/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tanderegg/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tanderegg/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tanderegg/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tanderegg/nand2tetris/deployments", + "created_at": "2016-05-25T16:48:39Z", + "updated_at": "2016-05-25T16:58:40Z", + "pushed_at": "2016-06-08T13:40:55Z", + "git_url": "git://github.com/tanderegg/nand2tetris.git", + "ssh_url": "git@github.com:tanderegg/nand2tetris.git", + "clone_url": "https://github.com/tanderegg/nand2tetris.git", + "svn_url": "https://github.com/tanderegg/nand2tetris", + "homepage": null, + "size": 520, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 57420901, + "name": "nand2tetrisprojects", + "full_name": "mithunder916/nand2tetrisprojects", + "owner": { + "login": "mithunder916", + "id": 18056098, + "avatar_url": "https://avatars.githubusercontent.com/u/18056098?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mithunder916", + "html_url": "https://github.com/mithunder916", + "followers_url": "https://api.github.com/users/mithunder916/followers", + "following_url": "https://api.github.com/users/mithunder916/following{/other_user}", + "gists_url": "https://api.github.com/users/mithunder916/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mithunder916/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mithunder916/subscriptions", + "organizations_url": "https://api.github.com/users/mithunder916/orgs", + "repos_url": "https://api.github.com/users/mithunder916/repos", + "events_url": "https://api.github.com/users/mithunder916/events{/privacy}", + "received_events_url": "https://api.github.com/users/mithunder916/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mithunder916/nand2tetrisprojects", + "description": "Projects for Coursera's Nand to Tetris class", + "fork": false, + "url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects", + "forks_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/forks", + "keys_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/teams", + "hooks_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/hooks", + "issue_events_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/issues/events{/number}", + "events_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/events", + "assignees_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/assignees{/user}", + "branches_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/branches{/branch}", + "tags_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/tags", + "blobs_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/languages", + "stargazers_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/stargazers", + "contributors_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/contributors", + "subscribers_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/subscribers", + "subscription_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/subscription", + "commits_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/contents/{+path}", + "compare_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/merges", + "archive_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/downloads", + "issues_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/issues{/number}", + "pulls_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/labels{/name}", + "releases_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/releases{/id}", + "deployments_url": "https://api.github.com/repos/mithunder916/nand2tetrisprojects/deployments", + "created_at": "2016-04-30T00:45:12Z", + "updated_at": "2016-04-30T00:45:45Z", + "pushed_at": "2016-06-01T02:12:31Z", + "git_url": "git://github.com/mithunder916/nand2tetrisprojects.git", + "ssh_url": "git@github.com:mithunder916/nand2tetrisprojects.git", + "clone_url": "https://github.com/mithunder916/nand2tetrisprojects.git", + "svn_url": "https://github.com/mithunder916/nand2tetrisprojects", + "homepage": null, + "size": 195, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.265625 + }, + { + "id": 41601475, + "name": "blocks-asm", + "full_name": "dtomas/blocks-asm", + "owner": { + "login": "dtomas", + "id": 4202709, + "avatar_url": "https://avatars.githubusercontent.com/u/4202709?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dtomas", + "html_url": "https://github.com/dtomas", + "followers_url": "https://api.github.com/users/dtomas/followers", + "following_url": "https://api.github.com/users/dtomas/following{/other_user}", + "gists_url": "https://api.github.com/users/dtomas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dtomas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dtomas/subscriptions", + "organizations_url": "https://api.github.com/users/dtomas/orgs", + "repos_url": "https://api.github.com/users/dtomas/repos", + "events_url": "https://api.github.com/users/dtomas/events{/privacy}", + "received_events_url": "https://api.github.com/users/dtomas/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dtomas/blocks-asm", + "description": "Tetris clone for the C64, written in ACME assembler.", + "fork": false, + "url": "https://api.github.com/repos/dtomas/blocks-asm", + "forks_url": "https://api.github.com/repos/dtomas/blocks-asm/forks", + "keys_url": "https://api.github.com/repos/dtomas/blocks-asm/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dtomas/blocks-asm/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dtomas/blocks-asm/teams", + "hooks_url": "https://api.github.com/repos/dtomas/blocks-asm/hooks", + "issue_events_url": "https://api.github.com/repos/dtomas/blocks-asm/issues/events{/number}", + "events_url": "https://api.github.com/repos/dtomas/blocks-asm/events", + "assignees_url": "https://api.github.com/repos/dtomas/blocks-asm/assignees{/user}", + "branches_url": "https://api.github.com/repos/dtomas/blocks-asm/branches{/branch}", + "tags_url": "https://api.github.com/repos/dtomas/blocks-asm/tags", + "blobs_url": "https://api.github.com/repos/dtomas/blocks-asm/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dtomas/blocks-asm/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dtomas/blocks-asm/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dtomas/blocks-asm/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dtomas/blocks-asm/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dtomas/blocks-asm/languages", + "stargazers_url": "https://api.github.com/repos/dtomas/blocks-asm/stargazers", + "contributors_url": "https://api.github.com/repos/dtomas/blocks-asm/contributors", + "subscribers_url": "https://api.github.com/repos/dtomas/blocks-asm/subscribers", + "subscription_url": "https://api.github.com/repos/dtomas/blocks-asm/subscription", + "commits_url": "https://api.github.com/repos/dtomas/blocks-asm/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dtomas/blocks-asm/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dtomas/blocks-asm/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dtomas/blocks-asm/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dtomas/blocks-asm/contents/{+path}", + "compare_url": "https://api.github.com/repos/dtomas/blocks-asm/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dtomas/blocks-asm/merges", + "archive_url": "https://api.github.com/repos/dtomas/blocks-asm/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dtomas/blocks-asm/downloads", + "issues_url": "https://api.github.com/repos/dtomas/blocks-asm/issues{/number}", + "pulls_url": "https://api.github.com/repos/dtomas/blocks-asm/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dtomas/blocks-asm/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dtomas/blocks-asm/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dtomas/blocks-asm/labels{/name}", + "releases_url": "https://api.github.com/repos/dtomas/blocks-asm/releases{/id}", + "deployments_url": "https://api.github.com/repos/dtomas/blocks-asm/deployments", + "created_at": "2015-08-29T17:27:12Z", + "updated_at": "2015-09-11T22:38:55Z", + "pushed_at": "2015-09-11T22:38:54Z", + "git_url": "git://github.com/dtomas/blocks-asm.git", + "ssh_url": "git@github.com:dtomas/blocks-asm.git", + "clone_url": "https://github.com/dtomas/blocks-asm.git", + "svn_url": "https://github.com/dtomas/blocks-asm", + "homepage": "", + "size": 392, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.2558155 + }, + { + "id": 34184497, + "name": "nand2tetris", + "full_name": "yanenok/nand2tetris", + "owner": { + "login": "yanenok", + "id": 5149867, + "avatar_url": "https://avatars.githubusercontent.com/u/5149867?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yanenok", + "html_url": "https://github.com/yanenok", + "followers_url": "https://api.github.com/users/yanenok/followers", + "following_url": "https://api.github.com/users/yanenok/following{/other_user}", + "gists_url": "https://api.github.com/users/yanenok/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yanenok/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yanenok/subscriptions", + "organizations_url": "https://api.github.com/users/yanenok/orgs", + "repos_url": "https://api.github.com/users/yanenok/repos", + "events_url": "https://api.github.com/users/yanenok/events{/privacy}", + "received_events_url": "https://api.github.com/users/yanenok/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yanenok/nand2tetris", + "description": "Course projects, From NAND to Tetris - http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/yanenok/nand2tetris", + "forks_url": "https://api.github.com/repos/yanenok/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/yanenok/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yanenok/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yanenok/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/yanenok/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yanenok/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yanenok/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/yanenok/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yanenok/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yanenok/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/yanenok/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yanenok/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yanenok/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yanenok/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yanenok/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yanenok/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/yanenok/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yanenok/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yanenok/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yanenok/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/yanenok/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yanenok/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yanenok/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yanenok/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yanenok/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yanenok/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yanenok/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/yanenok/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yanenok/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/yanenok/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yanenok/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yanenok/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yanenok/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yanenok/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yanenok/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yanenok/nand2tetris/deployments", + "created_at": "2015-04-18T22:04:20Z", + "updated_at": "2015-05-01T15:40:42Z", + "pushed_at": "2015-05-09T23:50:49Z", + "git_url": "git://github.com/yanenok/nand2tetris.git", + "ssh_url": "git@github.com:yanenok/nand2tetris.git", + "clone_url": "https://github.com/yanenok/nand2tetris.git", + "svn_url": "https://github.com/yanenok/nand2tetris", + "homepage": "", + "size": 332, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.2558155 + }, + { + "id": 15421107, + "name": "nand2tetris", + "full_name": "PeterSR/nand2tetris", + "owner": { + "login": "PeterSR", + "id": 222286, + "avatar_url": "https://avatars.githubusercontent.com/u/222286?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/PeterSR", + "html_url": "https://github.com/PeterSR", + "followers_url": "https://api.github.com/users/PeterSR/followers", + "following_url": "https://api.github.com/users/PeterSR/following{/other_user}", + "gists_url": "https://api.github.com/users/PeterSR/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PeterSR/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PeterSR/subscriptions", + "organizations_url": "https://api.github.com/users/PeterSR/orgs", + "repos_url": "https://api.github.com/users/PeterSR/repos", + "events_url": "https://api.github.com/users/PeterSR/events{/privacy}", + "received_events_url": "https://api.github.com/users/PeterSR/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/PeterSR/nand2tetris", + "description": "The various projects from the Nand to Tetris course", + "fork": false, + "url": "https://api.github.com/repos/PeterSR/nand2tetris", + "forks_url": "https://api.github.com/repos/PeterSR/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/PeterSR/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/PeterSR/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/PeterSR/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/PeterSR/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/PeterSR/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/PeterSR/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/PeterSR/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/PeterSR/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/PeterSR/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/PeterSR/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/PeterSR/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/PeterSR/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/PeterSR/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/PeterSR/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/PeterSR/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/PeterSR/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/PeterSR/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/PeterSR/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/PeterSR/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/PeterSR/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/PeterSR/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/PeterSR/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/PeterSR/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/PeterSR/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/PeterSR/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/PeterSR/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/PeterSR/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/PeterSR/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/PeterSR/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/PeterSR/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/PeterSR/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/PeterSR/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/PeterSR/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/PeterSR/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/PeterSR/nand2tetris/deployments", + "created_at": "2013-12-24T15:49:13Z", + "updated_at": "2013-12-24T15:51:33Z", + "pushed_at": "2013-12-24T15:51:32Z", + "git_url": "git://github.com/PeterSR/nand2tetris.git", + "ssh_url": "git@github.com:PeterSR/nand2tetris.git", + "clone_url": "https://github.com/PeterSR/nand2tetris.git", + "svn_url": "https://github.com/PeterSR/nand2tetris", + "homepage": null, + "size": 1368, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.2394085 + }, + { + "id": 16673419, + "name": "nand2tetris", + "full_name": "apeshape/nand2tetris", + "owner": { + "login": "apeshape", + "id": 467144, + "avatar_url": "https://avatars.githubusercontent.com/u/467144?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/apeshape", + "html_url": "https://github.com/apeshape", + "followers_url": "https://api.github.com/users/apeshape/followers", + "following_url": "https://api.github.com/users/apeshape/following{/other_user}", + "gists_url": "https://api.github.com/users/apeshape/gists{/gist_id}", + "starred_url": "https://api.github.com/users/apeshape/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/apeshape/subscriptions", + "organizations_url": "https://api.github.com/users/apeshape/orgs", + "repos_url": "https://api.github.com/users/apeshape/repos", + "events_url": "https://api.github.com/users/apeshape/events{/privacy}", + "received_events_url": "https://api.github.com/users/apeshape/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/apeshape/nand2tetris", + "description": "My solutions for the nand 2 tetris book", + "fork": false, + "url": "https://api.github.com/repos/apeshape/nand2tetris", + "forks_url": "https://api.github.com/repos/apeshape/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/apeshape/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/apeshape/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/apeshape/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/apeshape/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/apeshape/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/apeshape/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/apeshape/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/apeshape/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/apeshape/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/apeshape/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/apeshape/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/apeshape/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/apeshape/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/apeshape/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/apeshape/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/apeshape/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/apeshape/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/apeshape/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/apeshape/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/apeshape/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/apeshape/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/apeshape/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/apeshape/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/apeshape/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/apeshape/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/apeshape/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/apeshape/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/apeshape/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/apeshape/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/apeshape/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/apeshape/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/apeshape/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/apeshape/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/apeshape/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/apeshape/nand2tetris/deployments", + "created_at": "2014-02-09T19:20:05Z", + "updated_at": "2014-02-13T22:48:42Z", + "pushed_at": "2014-02-13T22:48:42Z", + "git_url": "git://github.com/apeshape/nand2tetris.git", + "ssh_url": "git@github.com:apeshape/nand2tetris.git", + "clone_url": "https://github.com/apeshape/nand2tetris.git", + "svn_url": "https://github.com/apeshape/nand2tetris", + "homepage": null, + "size": 184, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.2394085 + }, + { + "id": 33876679, + "name": "nand2tetris", + "full_name": "lamflam/nand2tetris", + "owner": { + "login": "lamflam", + "id": 3680882, + "avatar_url": "https://avatars.githubusercontent.com/u/3680882?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lamflam", + "html_url": "https://github.com/lamflam", + "followers_url": "https://api.github.com/users/lamflam/followers", + "following_url": "https://api.github.com/users/lamflam/following{/other_user}", + "gists_url": "https://api.github.com/users/lamflam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lamflam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lamflam/subscriptions", + "organizations_url": "https://api.github.com/users/lamflam/orgs", + "repos_url": "https://api.github.com/users/lamflam/repos", + "events_url": "https://api.github.com/users/lamflam/events{/privacy}", + "received_events_url": "https://api.github.com/users/lamflam/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lamflam/nand2tetris", + "description": "Course work for the From Nand To Tetris course", + "fork": false, + "url": "https://api.github.com/repos/lamflam/nand2tetris", + "forks_url": "https://api.github.com/repos/lamflam/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lamflam/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lamflam/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lamflam/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lamflam/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lamflam/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lamflam/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lamflam/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lamflam/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lamflam/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lamflam/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lamflam/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lamflam/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lamflam/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lamflam/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lamflam/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lamflam/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lamflam/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lamflam/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lamflam/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lamflam/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lamflam/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lamflam/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lamflam/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lamflam/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lamflam/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lamflam/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lamflam/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lamflam/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lamflam/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lamflam/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lamflam/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lamflam/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lamflam/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lamflam/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lamflam/nand2tetris/deployments", + "created_at": "2015-04-13T15:27:38Z", + "updated_at": "2015-04-17T12:16:09Z", + "pushed_at": "2015-07-23T14:28:24Z", + "git_url": "git://github.com/lamflam/nand2tetris.git", + "ssh_url": "git@github.com:lamflam/nand2tetris.git", + "clone_url": "https://github.com/lamflam/nand2tetris.git", + "svn_url": "https://github.com/lamflam/nand2tetris", + "homepage": null, + "size": 680, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "develop", + "score": 4.2394085 + }, + { + "id": 42212525, + "name": "Tetris-Game", + "full_name": "alifia2306/Tetris-Game", + "owner": { + "login": "alifia2306", + "id": 10080145, + "avatar_url": "https://avatars.githubusercontent.com/u/10080145?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/alifia2306", + "html_url": "https://github.com/alifia2306", + "followers_url": "https://api.github.com/users/alifia2306/followers", + "following_url": "https://api.github.com/users/alifia2306/following{/other_user}", + "gists_url": "https://api.github.com/users/alifia2306/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alifia2306/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alifia2306/subscriptions", + "organizations_url": "https://api.github.com/users/alifia2306/orgs", + "repos_url": "https://api.github.com/users/alifia2306/repos", + "events_url": "https://api.github.com/users/alifia2306/events{/privacy}", + "received_events_url": "https://api.github.com/users/alifia2306/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/alifia2306/Tetris-Game", + "description": "Implemented Device drivers for Video, timers and keyboard using Traps and writing Wrappers for them in LC4 Toy Assembly Language. Used these wrappers to implement a Tetris.", + "fork": false, + "url": "https://api.github.com/repos/alifia2306/Tetris-Game", + "forks_url": "https://api.github.com/repos/alifia2306/Tetris-Game/forks", + "keys_url": "https://api.github.com/repos/alifia2306/Tetris-Game/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alifia2306/Tetris-Game/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alifia2306/Tetris-Game/teams", + "hooks_url": "https://api.github.com/repos/alifia2306/Tetris-Game/hooks", + "issue_events_url": "https://api.github.com/repos/alifia2306/Tetris-Game/issues/events{/number}", + "events_url": "https://api.github.com/repos/alifia2306/Tetris-Game/events", + "assignees_url": "https://api.github.com/repos/alifia2306/Tetris-Game/assignees{/user}", + "branches_url": "https://api.github.com/repos/alifia2306/Tetris-Game/branches{/branch}", + "tags_url": "https://api.github.com/repos/alifia2306/Tetris-Game/tags", + "blobs_url": "https://api.github.com/repos/alifia2306/Tetris-Game/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alifia2306/Tetris-Game/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alifia2306/Tetris-Game/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alifia2306/Tetris-Game/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alifia2306/Tetris-Game/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alifia2306/Tetris-Game/languages", + "stargazers_url": "https://api.github.com/repos/alifia2306/Tetris-Game/stargazers", + "contributors_url": "https://api.github.com/repos/alifia2306/Tetris-Game/contributors", + "subscribers_url": "https://api.github.com/repos/alifia2306/Tetris-Game/subscribers", + "subscription_url": "https://api.github.com/repos/alifia2306/Tetris-Game/subscription", + "commits_url": "https://api.github.com/repos/alifia2306/Tetris-Game/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alifia2306/Tetris-Game/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alifia2306/Tetris-Game/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alifia2306/Tetris-Game/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alifia2306/Tetris-Game/contents/{+path}", + "compare_url": "https://api.github.com/repos/alifia2306/Tetris-Game/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alifia2306/Tetris-Game/merges", + "archive_url": "https://api.github.com/repos/alifia2306/Tetris-Game/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alifia2306/Tetris-Game/downloads", + "issues_url": "https://api.github.com/repos/alifia2306/Tetris-Game/issues{/number}", + "pulls_url": "https://api.github.com/repos/alifia2306/Tetris-Game/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alifia2306/Tetris-Game/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alifia2306/Tetris-Game/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alifia2306/Tetris-Game/labels{/name}", + "releases_url": "https://api.github.com/repos/alifia2306/Tetris-Game/releases{/id}", + "deployments_url": "https://api.github.com/repos/alifia2306/Tetris-Game/deployments", + "created_at": "2015-09-10T00:40:42Z", + "updated_at": "2015-09-10T00:59:43Z", + "pushed_at": "2015-09-10T00:40:44Z", + "git_url": "git://github.com/alifia2306/Tetris-Game.git", + "ssh_url": "git@github.com:alifia2306/Tetris-Game.git", + "clone_url": "https://github.com/alifia2306/Tetris-Game.git", + "svn_url": "https://github.com/alifia2306/Tetris-Game", + "homepage": "", + "size": 112, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.0354867 + }, + { + "id": 57215654, + "name": "nand_tetris", + "full_name": "pcorliss/nand_tetris", + "owner": { + "login": "pcorliss", + "id": 141914, + "avatar_url": "https://avatars.githubusercontent.com/u/141914?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pcorliss", + "html_url": "https://github.com/pcorliss", + "followers_url": "https://api.github.com/users/pcorliss/followers", + "following_url": "https://api.github.com/users/pcorliss/following{/other_user}", + "gists_url": "https://api.github.com/users/pcorliss/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pcorliss/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pcorliss/subscriptions", + "organizations_url": "https://api.github.com/users/pcorliss/orgs", + "repos_url": "https://api.github.com/users/pcorliss/repos", + "events_url": "https://api.github.com/users/pcorliss/events{/privacy}", + "received_events_url": "https://api.github.com/users/pcorliss/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/pcorliss/nand_tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/pcorliss/nand_tetris", + "forks_url": "https://api.github.com/repos/pcorliss/nand_tetris/forks", + "keys_url": "https://api.github.com/repos/pcorliss/nand_tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/pcorliss/nand_tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/pcorliss/nand_tetris/teams", + "hooks_url": "https://api.github.com/repos/pcorliss/nand_tetris/hooks", + "issue_events_url": "https://api.github.com/repos/pcorliss/nand_tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/pcorliss/nand_tetris/events", + "assignees_url": "https://api.github.com/repos/pcorliss/nand_tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/pcorliss/nand_tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/pcorliss/nand_tetris/tags", + "blobs_url": "https://api.github.com/repos/pcorliss/nand_tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/pcorliss/nand_tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/pcorliss/nand_tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/pcorliss/nand_tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/pcorliss/nand_tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/pcorliss/nand_tetris/languages", + "stargazers_url": "https://api.github.com/repos/pcorliss/nand_tetris/stargazers", + "contributors_url": "https://api.github.com/repos/pcorliss/nand_tetris/contributors", + "subscribers_url": "https://api.github.com/repos/pcorliss/nand_tetris/subscribers", + "subscription_url": "https://api.github.com/repos/pcorliss/nand_tetris/subscription", + "commits_url": "https://api.github.com/repos/pcorliss/nand_tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/pcorliss/nand_tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/pcorliss/nand_tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/pcorliss/nand_tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/pcorliss/nand_tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/pcorliss/nand_tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/pcorliss/nand_tetris/merges", + "archive_url": "https://api.github.com/repos/pcorliss/nand_tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/pcorliss/nand_tetris/downloads", + "issues_url": "https://api.github.com/repos/pcorliss/nand_tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/pcorliss/nand_tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/pcorliss/nand_tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/pcorliss/nand_tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/pcorliss/nand_tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/pcorliss/nand_tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/pcorliss/nand_tetris/deployments", + "created_at": "2016-04-27T13:30:52Z", + "updated_at": "2016-04-27T13:31:52Z", + "pushed_at": "2016-04-27T13:31:48Z", + "git_url": "git://github.com/pcorliss/nand_tetris.git", + "ssh_url": "git@github.com:pcorliss/nand_tetris.git", + "clone_url": "https://github.com/pcorliss/nand_tetris.git", + "svn_url": "https://github.com/pcorliss/nand_tetris", + "homepage": null, + "size": 173, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.0354867 + }, + { + "id": 61306821, + "name": "Tetris-AOC", + "full_name": "lucasbretana/Tetris-AOC", + "owner": { + "login": "lucasbretana", + "id": 7704537, + "avatar_url": "https://avatars.githubusercontent.com/u/7704537?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lucasbretana", + "html_url": "https://github.com/lucasbretana", + "followers_url": "https://api.github.com/users/lucasbretana/followers", + "following_url": "https://api.github.com/users/lucasbretana/following{/other_user}", + "gists_url": "https://api.github.com/users/lucasbretana/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lucasbretana/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lucasbretana/subscriptions", + "organizations_url": "https://api.github.com/users/lucasbretana/orgs", + "repos_url": "https://api.github.com/users/lucasbretana/repos", + "events_url": "https://api.github.com/users/lucasbretana/events{/privacy}", + "received_events_url": "https://api.github.com/users/lucasbretana/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lucasbretana/Tetris-AOC", + "description": "It's the game tetris created using the MARS, MIPS Simulator, assembly languge. ", + "fork": false, + "url": "https://api.github.com/repos/lucasbretana/Tetris-AOC", + "forks_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/forks", + "keys_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/teams", + "hooks_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/hooks", + "issue_events_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/issues/events{/number}", + "events_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/events", + "assignees_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/assignees{/user}", + "branches_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/branches{/branch}", + "tags_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/tags", + "blobs_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/languages", + "stargazers_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/stargazers", + "contributors_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/contributors", + "subscribers_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/subscribers", + "subscription_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/subscription", + "commits_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/contents/{+path}", + "compare_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/merges", + "archive_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/downloads", + "issues_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/issues{/number}", + "pulls_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/labels{/name}", + "releases_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/releases{/id}", + "deployments_url": "https://api.github.com/repos/lucasbretana/Tetris-AOC/deployments", + "created_at": "2016-06-16T15:53:31Z", + "updated_at": "2016-06-17T01:40:38Z", + "pushed_at": "2016-06-22T00:35:07Z", + "git_url": "git://github.com/lucasbretana/Tetris-AOC.git", + "ssh_url": "git@github.com:lucasbretana/Tetris-AOC.git", + "clone_url": "https://github.com/lucasbretana/Tetris-AOC.git", + "svn_url": "https://github.com/lucasbretana/Tetris-AOC", + "homepage": null, + "size": 69, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.0354867 + }, + { + "id": 16295007, + "name": "VGA_Tetris", + "full_name": "JaCzekanski/VGA_Tetris", + "owner": { + "login": "JaCzekanski", + "id": 3662990, + "avatar_url": "https://avatars.githubusercontent.com/u/3662990?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/JaCzekanski", + "html_url": "https://github.com/JaCzekanski", + "followers_url": "https://api.github.com/users/JaCzekanski/followers", + "following_url": "https://api.github.com/users/JaCzekanski/following{/other_user}", + "gists_url": "https://api.github.com/users/JaCzekanski/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaCzekanski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaCzekanski/subscriptions", + "organizations_url": "https://api.github.com/users/JaCzekanski/orgs", + "repos_url": "https://api.github.com/users/JaCzekanski/repos", + "events_url": "https://api.github.com/users/JaCzekanski/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaCzekanski/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/JaCzekanski/VGA_Tetris", + "description": "assembly, atmega8, software vga", + "fork": false, + "url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris", + "forks_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/forks", + "keys_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/teams", + "hooks_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/events", + "assignees_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/tags", + "blobs_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/languages", + "stargazers_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/subscription", + "commits_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/merges", + "archive_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/downloads", + "issues_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/JaCzekanski/VGA_Tetris/deployments", + "created_at": "2014-01-27T22:23:04Z", + "updated_at": "2014-01-27T22:42:48Z", + "pushed_at": "2014-01-27T22:42:47Z", + "git_url": "git://github.com/JaCzekanski/VGA_Tetris.git", + "ssh_url": "git@github.com:JaCzekanski/VGA_Tetris.git", + "clone_url": "https://github.com/JaCzekanski/VGA_Tetris.git", + "svn_url": "https://github.com/JaCzekanski/VGA_Tetris", + "homepage": "", + "size": 3872, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 4.0160136 + }, + { + "id": 40766592, + "name": "nand2tetris", + "full_name": "Fuffi/nand2tetris", + "owner": { + "login": "Fuffi", + "id": 1379179, + "avatar_url": "https://avatars.githubusercontent.com/u/1379179?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Fuffi", + "html_url": "https://github.com/Fuffi", + "followers_url": "https://api.github.com/users/Fuffi/followers", + "following_url": "https://api.github.com/users/Fuffi/following{/other_user}", + "gists_url": "https://api.github.com/users/Fuffi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Fuffi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Fuffi/subscriptions", + "organizations_url": "https://api.github.com/users/Fuffi/orgs", + "repos_url": "https://api.github.com/users/Fuffi/repos", + "events_url": "https://api.github.com/users/Fuffi/events{/privacy}", + "received_events_url": "https://api.github.com/users/Fuffi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Fuffi/nand2tetris", + "description": "Building a working computer, with OS and a Tetris game, starting from NAND gates", + "fork": false, + "url": "https://api.github.com/repos/Fuffi/nand2tetris", + "forks_url": "https://api.github.com/repos/Fuffi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Fuffi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Fuffi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Fuffi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Fuffi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Fuffi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Fuffi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Fuffi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Fuffi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Fuffi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Fuffi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Fuffi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Fuffi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Fuffi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Fuffi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Fuffi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Fuffi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Fuffi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Fuffi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Fuffi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Fuffi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Fuffi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Fuffi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Fuffi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Fuffi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Fuffi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Fuffi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Fuffi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Fuffi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Fuffi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Fuffi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Fuffi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Fuffi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Fuffi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Fuffi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Fuffi/nand2tetris/deployments", + "created_at": "2015-08-15T15:11:20Z", + "updated_at": "2015-08-19T23:22:45Z", + "pushed_at": "2015-08-29T09:14:58Z", + "git_url": "git://github.com/Fuffi/nand2tetris.git", + "ssh_url": "git@github.com:Fuffi/nand2tetris.git", + "clone_url": "https://github.com/Fuffi/nand2tetris.git", + "svn_url": "https://github.com/Fuffi/nand2tetris", + "homepage": "", + "size": 368, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4189136 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:11 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "483500", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "29", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"next\", ; rel=\"last\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "593010132f82159af0ded24b4932e109", + "x-github-request-id": "AE1408AB:5527:92C4DD2:5769F4AE" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/repositories?q=tetris+language%3Aassembly&sort=stars&order=desc&type=all&per_page=100&page=2&q=tetris+language:assembly&sort=stars&order=desc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 473, + "incomplete_results": false, + "items": [ + { + "id": 36068587, + "name": "nand2tetris", + "full_name": "guptadivyansh/nand2tetris", + "owner": { + "login": "guptadivyansh", + "id": 9139390, + "avatar_url": "https://avatars.githubusercontent.com/u/9139390?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/guptadivyansh", + "html_url": "https://github.com/guptadivyansh", + "followers_url": "https://api.github.com/users/guptadivyansh/followers", + "following_url": "https://api.github.com/users/guptadivyansh/following{/other_user}", + "gists_url": "https://api.github.com/users/guptadivyansh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/guptadivyansh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/guptadivyansh/subscriptions", + "organizations_url": "https://api.github.com/users/guptadivyansh/orgs", + "repos_url": "https://api.github.com/users/guptadivyansh/repos", + "events_url": "https://api.github.com/users/guptadivyansh/events{/privacy}", + "received_events_url": "https://api.github.com/users/guptadivyansh/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/guptadivyansh/nand2tetris", + "description": "Projectwork for Nand To Tetris (Part 1) course on Coursera.com", + "fork": false, + "url": "https://api.github.com/repos/guptadivyansh/nand2tetris", + "forks_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/guptadivyansh/nand2tetris/deployments", + "created_at": "2015-05-22T11:23:27Z", + "updated_at": "2015-05-25T11:56:47Z", + "pushed_at": "2015-05-25T11:56:45Z", + "git_url": "git://github.com/guptadivyansh/nand2tetris.git", + "ssh_url": "git@github.com:guptadivyansh/nand2tetris.git", + "clone_url": "https://github.com/guptadivyansh/nand2tetris.git", + "svn_url": "https://github.com/guptadivyansh/nand2tetris", + "homepage": null, + "size": 144, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4164693 + }, + { + "id": 45473772, + "name": "nand2tetris", + "full_name": "Coaxial/nand2tetris", + "owner": { + "login": "Coaxial", + "id": 2927869, + "avatar_url": "https://avatars.githubusercontent.com/u/2927869?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Coaxial", + "html_url": "https://github.com/Coaxial", + "followers_url": "https://api.github.com/users/Coaxial/followers", + "following_url": "https://api.github.com/users/Coaxial/following{/other_user}", + "gists_url": "https://api.github.com/users/Coaxial/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Coaxial/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Coaxial/subscriptions", + "organizations_url": "https://api.github.com/users/Coaxial/orgs", + "repos_url": "https://api.github.com/users/Coaxial/repos", + "events_url": "https://api.github.com/users/Coaxial/events{/privacy}", + "received_events_url": "https://api.github.com/users/Coaxial/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Coaxial/nand2tetris", + "description": "Write a Tetris game starting with building computer chips from NAND gates", + "fork": false, + "url": "https://api.github.com/repos/Coaxial/nand2tetris", + "forks_url": "https://api.github.com/repos/Coaxial/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Coaxial/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Coaxial/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Coaxial/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Coaxial/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Coaxial/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Coaxial/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Coaxial/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Coaxial/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Coaxial/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Coaxial/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Coaxial/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Coaxial/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Coaxial/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Coaxial/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Coaxial/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Coaxial/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Coaxial/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Coaxial/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Coaxial/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Coaxial/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Coaxial/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Coaxial/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Coaxial/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Coaxial/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Coaxial/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Coaxial/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Coaxial/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Coaxial/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Coaxial/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Coaxial/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Coaxial/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Coaxial/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Coaxial/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Coaxial/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Coaxial/nand2tetris/deployments", + "created_at": "2015-11-03T14:57:59Z", + "updated_at": "2015-11-03T14:58:54Z", + "pushed_at": "2015-11-21T23:45:59Z", + "git_url": "git://github.com/Coaxial/nand2tetris.git", + "ssh_url": "git@github.com:Coaxial/nand2tetris.git", + "clone_url": "https://github.com/Coaxial/nand2tetris.git", + "svn_url": "https://github.com/Coaxial/nand2tetris", + "homepage": null, + "size": 160, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4164693 + }, + { + "id": 43817309, + "name": "nand2tetris", + "full_name": "kronosapiens/nand2tetris", + "owner": { + "login": "kronosapiens", + "id": 1874062, + "avatar_url": "https://avatars.githubusercontent.com/u/1874062?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kronosapiens", + "html_url": "https://github.com/kronosapiens", + "followers_url": "https://api.github.com/users/kronosapiens/followers", + "following_url": "https://api.github.com/users/kronosapiens/following{/other_user}", + "gists_url": "https://api.github.com/users/kronosapiens/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kronosapiens/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kronosapiens/subscriptions", + "organizations_url": "https://api.github.com/users/kronosapiens/orgs", + "repos_url": "https://api.github.com/users/kronosapiens/repos", + "events_url": "https://api.github.com/users/kronosapiens/events{/privacy}", + "received_events_url": "https://api.github.com/users/kronosapiens/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kronosapiens/nand2tetris", + "description": "Work done for \"From Nand to Tetris: Building a Modern Computer from First Principles\"", + "fork": false, + "url": "https://api.github.com/repos/kronosapiens/nand2tetris", + "forks_url": "https://api.github.com/repos/kronosapiens/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kronosapiens/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kronosapiens/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kronosapiens/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kronosapiens/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kronosapiens/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kronosapiens/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kronosapiens/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kronosapiens/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kronosapiens/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kronosapiens/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kronosapiens/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kronosapiens/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kronosapiens/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kronosapiens/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kronosapiens/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kronosapiens/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kronosapiens/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kronosapiens/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kronosapiens/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kronosapiens/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kronosapiens/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kronosapiens/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kronosapiens/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kronosapiens/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kronosapiens/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kronosapiens/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kronosapiens/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kronosapiens/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kronosapiens/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kronosapiens/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kronosapiens/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kronosapiens/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kronosapiens/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kronosapiens/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kronosapiens/nand2tetris/deployments", + "created_at": "2015-10-07T13:23:28Z", + "updated_at": "2015-12-16T19:52:39Z", + "pushed_at": "2016-01-07T14:37:07Z", + "git_url": "git://github.com/kronosapiens/nand2tetris.git", + "ssh_url": "git@github.com:kronosapiens/nand2tetris.git", + "clone_url": "https://github.com/kronosapiens/nand2tetris.git", + "svn_url": "https://github.com/kronosapiens/nand2tetris", + "homepage": null, + "size": 249, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4164693 + }, + { + "id": 51764516, + "name": "nand2tetris", + "full_name": "tommy0521/nand2tetris", + "owner": { + "login": "tommy0521", + "id": 6337745, + "avatar_url": "https://avatars.githubusercontent.com/u/6337745?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tommy0521", + "html_url": "https://github.com/tommy0521", + "followers_url": "https://api.github.com/users/tommy0521/followers", + "following_url": "https://api.github.com/users/tommy0521/following{/other_user}", + "gists_url": "https://api.github.com/users/tommy0521/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tommy0521/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tommy0521/subscriptions", + "organizations_url": "https://api.github.com/users/tommy0521/orgs", + "repos_url": "https://api.github.com/users/tommy0521/repos", + "events_url": "https://api.github.com/users/tommy0521/events{/privacy}", + "received_events_url": "https://api.github.com/users/tommy0521/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tommy0521/nand2tetris", + "description": "MOOC Build a Modern Computer from First Principles: From Nand to Tetris", + "fork": false, + "url": "https://api.github.com/repos/tommy0521/nand2tetris", + "forks_url": "https://api.github.com/repos/tommy0521/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tommy0521/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tommy0521/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tommy0521/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tommy0521/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tommy0521/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tommy0521/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tommy0521/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tommy0521/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tommy0521/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tommy0521/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tommy0521/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tommy0521/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tommy0521/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tommy0521/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tommy0521/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tommy0521/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tommy0521/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tommy0521/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tommy0521/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tommy0521/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tommy0521/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tommy0521/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tommy0521/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tommy0521/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tommy0521/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tommy0521/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tommy0521/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tommy0521/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tommy0521/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tommy0521/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tommy0521/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tommy0521/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tommy0521/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tommy0521/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tommy0521/nand2tetris/deployments", + "created_at": "2016-02-15T15:24:31Z", + "updated_at": "2016-02-15T15:59:53Z", + "pushed_at": "2016-02-17T05:18:22Z", + "git_url": "git://github.com/tommy0521/nand2tetris.git", + "ssh_url": "git@github.com:tommy0521/nand2tetris.git", + "clone_url": "https://github.com/tommy0521/nand2tetris.git", + "svn_url": "https://github.com/tommy0521/nand2tetris", + "homepage": null, + "size": 159, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4164693 + }, + { + "id": 13575858, + "name": "x86-Tetris", + "full_name": "kylelk/x86-Tetris", + "owner": { + "login": "kylelk", + "id": 5159173, + "avatar_url": "https://avatars.githubusercontent.com/u/5159173?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kylelk", + "html_url": "https://github.com/kylelk", + "followers_url": "https://api.github.com/users/kylelk/followers", + "following_url": "https://api.github.com/users/kylelk/following{/other_user}", + "gists_url": "https://api.github.com/users/kylelk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kylelk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kylelk/subscriptions", + "organizations_url": "https://api.github.com/users/kylelk/orgs", + "repos_url": "https://api.github.com/users/kylelk/repos", + "events_url": "https://api.github.com/users/kylelk/events{/privacy}", + "received_events_url": "https://api.github.com/users/kylelk/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kylelk/x86-Tetris", + "description": "This is a 16bit x86 tetris done for Organization Of Computer Systems class at AU.", + "fork": false, + "url": "https://api.github.com/repos/kylelk/x86-Tetris", + "forks_url": "https://api.github.com/repos/kylelk/x86-Tetris/forks", + "keys_url": "https://api.github.com/repos/kylelk/x86-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kylelk/x86-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kylelk/x86-Tetris/teams", + "hooks_url": "https://api.github.com/repos/kylelk/x86-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kylelk/x86-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kylelk/x86-Tetris/events", + "assignees_url": "https://api.github.com/repos/kylelk/x86-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kylelk/x86-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kylelk/x86-Tetris/tags", + "blobs_url": "https://api.github.com/repos/kylelk/x86-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kylelk/x86-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kylelk/x86-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kylelk/x86-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kylelk/x86-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kylelk/x86-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/kylelk/x86-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kylelk/x86-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kylelk/x86-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kylelk/x86-Tetris/subscription", + "commits_url": "https://api.github.com/repos/kylelk/x86-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kylelk/x86-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kylelk/x86-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kylelk/x86-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kylelk/x86-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kylelk/x86-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kylelk/x86-Tetris/merges", + "archive_url": "https://api.github.com/repos/kylelk/x86-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kylelk/x86-Tetris/downloads", + "issues_url": "https://api.github.com/repos/kylelk/x86-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kylelk/x86-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kylelk/x86-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kylelk/x86-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kylelk/x86-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kylelk/x86-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kylelk/x86-Tetris/deployments", + "created_at": "2013-10-14T23:20:59Z", + "updated_at": "2014-07-31T18:58:16Z", + "pushed_at": "2013-03-09T18:35:17Z", + "git_url": "git://github.com/kylelk/x86-Tetris.git", + "ssh_url": "git@github.com:kylelk/x86-Tetris.git", + "clone_url": "https://github.com/kylelk/x86-Tetris.git", + "svn_url": "https://github.com/kylelk/x86-Tetris", + "homepage": null, + "size": 64, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4162421 + }, + { + "id": 41776113, + "name": "nand2tetris", + "full_name": "dwayne/nand2tetris", + "owner": { + "login": "dwayne", + "id": 319231, + "avatar_url": "https://avatars.githubusercontent.com/u/319231?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dwayne", + "html_url": "https://github.com/dwayne", + "followers_url": "https://api.github.com/users/dwayne/followers", + "following_url": "https://api.github.com/users/dwayne/following{/other_user}", + "gists_url": "https://api.github.com/users/dwayne/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dwayne/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dwayne/subscriptions", + "organizations_url": "https://api.github.com/users/dwayne/orgs", + "repos_url": "https://api.github.com/users/dwayne/repos", + "events_url": "https://api.github.com/users/dwayne/events{/privacy}", + "received_events_url": "https://api.github.com/users/dwayne/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dwayne/nand2tetris", + "description": "From NAND to Tetris - Building a Modern Computer From First Principles", + "fork": false, + "url": "https://api.github.com/repos/dwayne/nand2tetris", + "forks_url": "https://api.github.com/repos/dwayne/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dwayne/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dwayne/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dwayne/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dwayne/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dwayne/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dwayne/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dwayne/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dwayne/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dwayne/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dwayne/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dwayne/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dwayne/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dwayne/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dwayne/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dwayne/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dwayne/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dwayne/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dwayne/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dwayne/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dwayne/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dwayne/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dwayne/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dwayne/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dwayne/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dwayne/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dwayne/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dwayne/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dwayne/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dwayne/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dwayne/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dwayne/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dwayne/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dwayne/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dwayne/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dwayne/nand2tetris/deployments", + "created_at": "2015-09-02T02:54:58Z", + "updated_at": "2015-09-02T10:24:15Z", + "pushed_at": "2015-09-05T02:20:27Z", + "git_url": "git://github.com/dwayne/nand2tetris.git", + "ssh_url": "git@github.com:dwayne/nand2tetris.git", + "clone_url": "https://github.com/dwayne/nand2tetris.git", + "svn_url": "https://github.com/dwayne/nand2tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 660, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4162421 + }, + { + "id": 50686388, + "name": "myassembler", + "full_name": "netskink/myassembler", + "owner": { + "login": "netskink", + "id": 4422172, + "avatar_url": "https://avatars.githubusercontent.com/u/4422172?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/netskink", + "html_url": "https://github.com/netskink", + "followers_url": "https://api.github.com/users/netskink/followers", + "following_url": "https://api.github.com/users/netskink/following{/other_user}", + "gists_url": "https://api.github.com/users/netskink/gists{/gist_id}", + "starred_url": "https://api.github.com/users/netskink/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/netskink/subscriptions", + "organizations_url": "https://api.github.com/users/netskink/orgs", + "repos_url": "https://api.github.com/users/netskink/repos", + "events_url": "https://api.github.com/users/netskink/events{/privacy}", + "received_events_url": "https://api.github.com/users/netskink/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/netskink/myassembler", + "description": "The assembler I wrote for nand to tetris in objective-c", + "fork": false, + "url": "https://api.github.com/repos/netskink/myassembler", + "forks_url": "https://api.github.com/repos/netskink/myassembler/forks", + "keys_url": "https://api.github.com/repos/netskink/myassembler/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/netskink/myassembler/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/netskink/myassembler/teams", + "hooks_url": "https://api.github.com/repos/netskink/myassembler/hooks", + "issue_events_url": "https://api.github.com/repos/netskink/myassembler/issues/events{/number}", + "events_url": "https://api.github.com/repos/netskink/myassembler/events", + "assignees_url": "https://api.github.com/repos/netskink/myassembler/assignees{/user}", + "branches_url": "https://api.github.com/repos/netskink/myassembler/branches{/branch}", + "tags_url": "https://api.github.com/repos/netskink/myassembler/tags", + "blobs_url": "https://api.github.com/repos/netskink/myassembler/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/netskink/myassembler/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/netskink/myassembler/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/netskink/myassembler/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/netskink/myassembler/statuses/{sha}", + "languages_url": "https://api.github.com/repos/netskink/myassembler/languages", + "stargazers_url": "https://api.github.com/repos/netskink/myassembler/stargazers", + "contributors_url": "https://api.github.com/repos/netskink/myassembler/contributors", + "subscribers_url": "https://api.github.com/repos/netskink/myassembler/subscribers", + "subscription_url": "https://api.github.com/repos/netskink/myassembler/subscription", + "commits_url": "https://api.github.com/repos/netskink/myassembler/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/netskink/myassembler/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/netskink/myassembler/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/netskink/myassembler/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/netskink/myassembler/contents/{+path}", + "compare_url": "https://api.github.com/repos/netskink/myassembler/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/netskink/myassembler/merges", + "archive_url": "https://api.github.com/repos/netskink/myassembler/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/netskink/myassembler/downloads", + "issues_url": "https://api.github.com/repos/netskink/myassembler/issues{/number}", + "pulls_url": "https://api.github.com/repos/netskink/myassembler/pulls{/number}", + "milestones_url": "https://api.github.com/repos/netskink/myassembler/milestones{/number}", + "notifications_url": "https://api.github.com/repos/netskink/myassembler/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/netskink/myassembler/labels{/name}", + "releases_url": "https://api.github.com/repos/netskink/myassembler/releases{/id}", + "deployments_url": "https://api.github.com/repos/netskink/myassembler/deployments", + "created_at": "2016-01-29T19:35:07Z", + "updated_at": "2016-01-29T19:42:30Z", + "pushed_at": "2016-01-29T19:45:11Z", + "git_url": "git://github.com/netskink/myassembler.git", + "ssh_url": "git@github.com:netskink/myassembler.git", + "clone_url": "https://github.com/netskink/myassembler.git", + "svn_url": "https://github.com/netskink/myassembler", + "homepage": null, + "size": 72, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4162421 + }, + { + "id": 54340611, + "name": "nand2tetris", + "full_name": "devmeyster/nand2tetris", + "owner": { + "login": "devmeyster", + "id": 6244629, + "avatar_url": "https://avatars.githubusercontent.com/u/6244629?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/devmeyster", + "html_url": "https://github.com/devmeyster", + "followers_url": "https://api.github.com/users/devmeyster/followers", + "following_url": "https://api.github.com/users/devmeyster/following{/other_user}", + "gists_url": "https://api.github.com/users/devmeyster/gists{/gist_id}", + "starred_url": "https://api.github.com/users/devmeyster/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/devmeyster/subscriptions", + "organizations_url": "https://api.github.com/users/devmeyster/orgs", + "repos_url": "https://api.github.com/users/devmeyster/repos", + "events_url": "https://api.github.com/users/devmeyster/events{/privacy}", + "received_events_url": "https://api.github.com/users/devmeyster/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/devmeyster/nand2tetris", + "description": "Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)", + "fork": false, + "url": "https://api.github.com/repos/devmeyster/nand2tetris", + "forks_url": "https://api.github.com/repos/devmeyster/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/devmeyster/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/devmeyster/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/devmeyster/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/devmeyster/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/devmeyster/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/devmeyster/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/devmeyster/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/devmeyster/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/devmeyster/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/devmeyster/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/devmeyster/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/devmeyster/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/devmeyster/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/devmeyster/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/devmeyster/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/devmeyster/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/devmeyster/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/devmeyster/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/devmeyster/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/devmeyster/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/devmeyster/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/devmeyster/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/devmeyster/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/devmeyster/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/devmeyster/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/devmeyster/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/devmeyster/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/devmeyster/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/devmeyster/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/devmeyster/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/devmeyster/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/devmeyster/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/devmeyster/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/devmeyster/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/devmeyster/nand2tetris/deployments", + "created_at": "2016-03-20T21:10:25Z", + "updated_at": "2016-03-20T21:18:47Z", + "pushed_at": "2016-03-20T21:17:24Z", + "git_url": "git://github.com/devmeyster/nand2tetris.git", + "ssh_url": "git@github.com:devmeyster/nand2tetris.git", + "clone_url": "https://github.com/devmeyster/nand2tetris.git", + "svn_url": "https://github.com/devmeyster/nand2tetris", + "homepage": "https://www.coursera.org/learn/build-a-computer/", + "size": 511, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4001079 + }, + { + "id": 34223477, + "name": "tetris-x86", + "full_name": "austinmorgan/tetris-x86", + "owner": { + "login": "austinmorgan", + "id": 8840970, + "avatar_url": "https://avatars.githubusercontent.com/u/8840970?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/austinmorgan", + "html_url": "https://github.com/austinmorgan", + "followers_url": "https://api.github.com/users/austinmorgan/followers", + "following_url": "https://api.github.com/users/austinmorgan/following{/other_user}", + "gists_url": "https://api.github.com/users/austinmorgan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/austinmorgan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/austinmorgan/subscriptions", + "organizations_url": "https://api.github.com/users/austinmorgan/orgs", + "repos_url": "https://api.github.com/users/austinmorgan/repos", + "events_url": "https://api.github.com/users/austinmorgan/events{/privacy}", + "received_events_url": "https://api.github.com/users/austinmorgan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/austinmorgan/tetris-x86", + "description": "Pure assembly Tetris clone group project, no system calls allowed. We tried our best.", + "fork": false, + "url": "https://api.github.com/repos/austinmorgan/tetris-x86", + "forks_url": "https://api.github.com/repos/austinmorgan/tetris-x86/forks", + "keys_url": "https://api.github.com/repos/austinmorgan/tetris-x86/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/austinmorgan/tetris-x86/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/austinmorgan/tetris-x86/teams", + "hooks_url": "https://api.github.com/repos/austinmorgan/tetris-x86/hooks", + "issue_events_url": "https://api.github.com/repos/austinmorgan/tetris-x86/issues/events{/number}", + "events_url": "https://api.github.com/repos/austinmorgan/tetris-x86/events", + "assignees_url": "https://api.github.com/repos/austinmorgan/tetris-x86/assignees{/user}", + "branches_url": "https://api.github.com/repos/austinmorgan/tetris-x86/branches{/branch}", + "tags_url": "https://api.github.com/repos/austinmorgan/tetris-x86/tags", + "blobs_url": "https://api.github.com/repos/austinmorgan/tetris-x86/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/austinmorgan/tetris-x86/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/austinmorgan/tetris-x86/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/austinmorgan/tetris-x86/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/austinmorgan/tetris-x86/statuses/{sha}", + "languages_url": "https://api.github.com/repos/austinmorgan/tetris-x86/languages", + "stargazers_url": "https://api.github.com/repos/austinmorgan/tetris-x86/stargazers", + "contributors_url": "https://api.github.com/repos/austinmorgan/tetris-x86/contributors", + "subscribers_url": "https://api.github.com/repos/austinmorgan/tetris-x86/subscribers", + "subscription_url": "https://api.github.com/repos/austinmorgan/tetris-x86/subscription", + "commits_url": "https://api.github.com/repos/austinmorgan/tetris-x86/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/austinmorgan/tetris-x86/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/austinmorgan/tetris-x86/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/austinmorgan/tetris-x86/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/austinmorgan/tetris-x86/contents/{+path}", + "compare_url": "https://api.github.com/repos/austinmorgan/tetris-x86/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/austinmorgan/tetris-x86/merges", + "archive_url": "https://api.github.com/repos/austinmorgan/tetris-x86/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/austinmorgan/tetris-x86/downloads", + "issues_url": "https://api.github.com/repos/austinmorgan/tetris-x86/issues{/number}", + "pulls_url": "https://api.github.com/repos/austinmorgan/tetris-x86/pulls{/number}", + "milestones_url": "https://api.github.com/repos/austinmorgan/tetris-x86/milestones{/number}", + "notifications_url": "https://api.github.com/repos/austinmorgan/tetris-x86/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/austinmorgan/tetris-x86/labels{/name}", + "releases_url": "https://api.github.com/repos/austinmorgan/tetris-x86/releases{/id}", + "deployments_url": "https://api.github.com/repos/austinmorgan/tetris-x86/deployments", + "created_at": "2015-04-19T20:38:22Z", + "updated_at": "2016-03-26T05:49:09Z", + "pushed_at": "2016-03-26T05:44:52Z", + "git_url": "git://github.com/austinmorgan/tetris-x86.git", + "ssh_url": "git@github.com:austinmorgan/tetris-x86.git", + "clone_url": "https://github.com/austinmorgan/tetris-x86.git", + "svn_url": "https://github.com/austinmorgan/tetris-x86", + "homepage": "", + "size": 27, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4001079 + }, + { + "id": 53215855, + "name": "nand2tetris", + "full_name": "yashiro32/nand2tetris", + "owner": { + "login": "yashiro32", + "id": 1680988, + "avatar_url": "https://avatars.githubusercontent.com/u/1680988?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yashiro32", + "html_url": "https://github.com/yashiro32", + "followers_url": "https://api.github.com/users/yashiro32/followers", + "following_url": "https://api.github.com/users/yashiro32/following{/other_user}", + "gists_url": "https://api.github.com/users/yashiro32/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yashiro32/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yashiro32/subscriptions", + "organizations_url": "https://api.github.com/users/yashiro32/orgs", + "repos_url": "https://api.github.com/users/yashiro32/repos", + "events_url": "https://api.github.com/users/yashiro32/events{/privacy}", + "received_events_url": "https://api.github.com/users/yashiro32/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yashiro32/nand2tetris", + "description": "Coursera Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)", + "fork": false, + "url": "https://api.github.com/repos/yashiro32/nand2tetris", + "forks_url": "https://api.github.com/repos/yashiro32/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/yashiro32/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yashiro32/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yashiro32/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/yashiro32/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yashiro32/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yashiro32/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/yashiro32/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yashiro32/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yashiro32/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/yashiro32/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yashiro32/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yashiro32/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yashiro32/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yashiro32/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yashiro32/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/yashiro32/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yashiro32/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yashiro32/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yashiro32/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/yashiro32/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yashiro32/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yashiro32/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yashiro32/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yashiro32/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yashiro32/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yashiro32/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/yashiro32/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yashiro32/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/yashiro32/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yashiro32/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yashiro32/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yashiro32/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yashiro32/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yashiro32/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yashiro32/nand2tetris/deployments", + "created_at": "2016-03-05T18:13:54Z", + "updated_at": "2016-03-05T18:16:01Z", + "pushed_at": "2016-03-05T18:15:59Z", + "git_url": "git://github.com/yashiro32/nand2tetris.git", + "ssh_url": "git@github.com:yashiro32/nand2tetris.git", + "clone_url": "https://github.com/yashiro32/nand2tetris.git", + "svn_url": "https://github.com/yashiro32/nand2tetris", + "homepage": null, + "size": 535, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.4001079 + }, + { + "id": 60170465, + "name": "hackAssembler", + "full_name": "nazrhom/hackAssembler", + "owner": { + "login": "nazrhom", + "id": 6810908, + "avatar_url": "https://avatars.githubusercontent.com/u/6810908?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nazrhom", + "html_url": "https://github.com/nazrhom", + "followers_url": "https://api.github.com/users/nazrhom/followers", + "following_url": "https://api.github.com/users/nazrhom/following{/other_user}", + "gists_url": "https://api.github.com/users/nazrhom/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nazrhom/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nazrhom/subscriptions", + "organizations_url": "https://api.github.com/users/nazrhom/orgs", + "repos_url": "https://api.github.com/users/nazrhom/repos", + "events_url": "https://api.github.com/users/nazrhom/events{/privacy}", + "received_events_url": "https://api.github.com/users/nazrhom/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nazrhom/hackAssembler", + "description": "A node js assembler for the hack language presented in the course from nand to tetris", + "fork": false, + "url": "https://api.github.com/repos/nazrhom/hackAssembler", + "forks_url": "https://api.github.com/repos/nazrhom/hackAssembler/forks", + "keys_url": "https://api.github.com/repos/nazrhom/hackAssembler/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nazrhom/hackAssembler/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nazrhom/hackAssembler/teams", + "hooks_url": "https://api.github.com/repos/nazrhom/hackAssembler/hooks", + "issue_events_url": "https://api.github.com/repos/nazrhom/hackAssembler/issues/events{/number}", + "events_url": "https://api.github.com/repos/nazrhom/hackAssembler/events", + "assignees_url": "https://api.github.com/repos/nazrhom/hackAssembler/assignees{/user}", + "branches_url": "https://api.github.com/repos/nazrhom/hackAssembler/branches{/branch}", + "tags_url": "https://api.github.com/repos/nazrhom/hackAssembler/tags", + "blobs_url": "https://api.github.com/repos/nazrhom/hackAssembler/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nazrhom/hackAssembler/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nazrhom/hackAssembler/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nazrhom/hackAssembler/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nazrhom/hackAssembler/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nazrhom/hackAssembler/languages", + "stargazers_url": "https://api.github.com/repos/nazrhom/hackAssembler/stargazers", + "contributors_url": "https://api.github.com/repos/nazrhom/hackAssembler/contributors", + "subscribers_url": "https://api.github.com/repos/nazrhom/hackAssembler/subscribers", + "subscription_url": "https://api.github.com/repos/nazrhom/hackAssembler/subscription", + "commits_url": "https://api.github.com/repos/nazrhom/hackAssembler/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nazrhom/hackAssembler/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nazrhom/hackAssembler/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nazrhom/hackAssembler/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nazrhom/hackAssembler/contents/{+path}", + "compare_url": "https://api.github.com/repos/nazrhom/hackAssembler/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nazrhom/hackAssembler/merges", + "archive_url": "https://api.github.com/repos/nazrhom/hackAssembler/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nazrhom/hackAssembler/downloads", + "issues_url": "https://api.github.com/repos/nazrhom/hackAssembler/issues{/number}", + "pulls_url": "https://api.github.com/repos/nazrhom/hackAssembler/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nazrhom/hackAssembler/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nazrhom/hackAssembler/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nazrhom/hackAssembler/labels{/name}", + "releases_url": "https://api.github.com/repos/nazrhom/hackAssembler/releases{/id}", + "deployments_url": "https://api.github.com/repos/nazrhom/hackAssembler/deployments", + "created_at": "2016-06-01T11:16:34Z", + "updated_at": "2016-06-01T11:17:22Z", + "pushed_at": "2016-06-01T11:17:20Z", + "git_url": "git://github.com/nazrhom/hackAssembler.git", + "ssh_url": "git@github.com:nazrhom/hackAssembler.git", + "clone_url": "https://github.com/nazrhom/hackAssembler.git", + "svn_url": "https://github.com/nazrhom/hackAssembler", + "homepage": null, + "size": 33, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.3951874 + }, + { + "id": 57438284, + "name": "From-Nand-to-Tetris", + "full_name": "GISJMR/From-Nand-to-Tetris", + "owner": { + "login": "GISJMR", + "id": 17338239, + "avatar_url": "https://avatars.githubusercontent.com/u/17338239?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/GISJMR", + "html_url": "https://github.com/GISJMR", + "followers_url": "https://api.github.com/users/GISJMR/followers", + "following_url": "https://api.github.com/users/GISJMR/following{/other_user}", + "gists_url": "https://api.github.com/users/GISJMR/gists{/gist_id}", + "starred_url": "https://api.github.com/users/GISJMR/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GISJMR/subscriptions", + "organizations_url": "https://api.github.com/users/GISJMR/orgs", + "repos_url": "https://api.github.com/users/GISJMR/repos", + "events_url": "https://api.github.com/users/GISJMR/events{/privacy}", + "received_events_url": "https://api.github.com/users/GISJMR/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/GISJMR/From-Nand-to-Tetris", + "description": "Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centred Course)", + "fork": false, + "url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris", + "forks_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/forks", + "keys_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/teams", + "hooks_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/events", + "assignees_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/tags", + "blobs_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/languages", + "stargazers_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/subscription", + "commits_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/merges", + "archive_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/downloads", + "issues_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/GISJMR/From-Nand-to-Tetris/deployments", + "created_at": "2016-04-30T11:01:15Z", + "updated_at": "2016-05-20T19:09:29Z", + "pushed_at": "2016-05-27T21:51:34Z", + "git_url": "git://github.com/GISJMR/From-Nand-to-Tetris.git", + "ssh_url": "git@github.com:GISJMR/From-Nand-to-Tetris.git", + "clone_url": "https://github.com/GISJMR/From-Nand-to-Tetris.git", + "svn_url": "https://github.com/GISJMR/From-Nand-to-Tetris", + "homepage": null, + "size": 20, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.3951874 + }, + { + "id": 6851387, + "name": "nand2tetris", + "full_name": "michalvalasek/nand2tetris", + "owner": { + "login": "michalvalasek", + "id": 312155, + "avatar_url": "https://avatars.githubusercontent.com/u/312155?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/michalvalasek", + "html_url": "https://github.com/michalvalasek", + "followers_url": "https://api.github.com/users/michalvalasek/followers", + "following_url": "https://api.github.com/users/michalvalasek/following{/other_user}", + "gists_url": "https://api.github.com/users/michalvalasek/gists{/gist_id}", + "starred_url": "https://api.github.com/users/michalvalasek/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/michalvalasek/subscriptions", + "organizations_url": "https://api.github.com/users/michalvalasek/orgs", + "repos_url": "https://api.github.com/users/michalvalasek/repos", + "events_url": "https://api.github.com/users/michalvalasek/events{/privacy}", + "received_events_url": "https://api.github.com/users/michalvalasek/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/michalvalasek/nand2tetris", + "description": "Projects to the book The elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/michalvalasek/nand2tetris", + "forks_url": "https://api.github.com/repos/michalvalasek/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/michalvalasek/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/michalvalasek/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/michalvalasek/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/michalvalasek/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/michalvalasek/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/michalvalasek/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/michalvalasek/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/michalvalasek/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/michalvalasek/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/michalvalasek/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/michalvalasek/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/michalvalasek/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/michalvalasek/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/michalvalasek/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/michalvalasek/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/michalvalasek/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/michalvalasek/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/michalvalasek/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/michalvalasek/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/michalvalasek/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/michalvalasek/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/michalvalasek/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/michalvalasek/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/michalvalasek/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/michalvalasek/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/michalvalasek/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/michalvalasek/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/michalvalasek/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/michalvalasek/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/michalvalasek/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/michalvalasek/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/michalvalasek/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/michalvalasek/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/michalvalasek/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/michalvalasek/nand2tetris/deployments", + "created_at": "2012-11-25T13:45:23Z", + "updated_at": "2013-10-15T15:45:25Z", + "pushed_at": "2012-11-25T14:48:34Z", + "git_url": "git://github.com/michalvalasek/nand2tetris.git", + "ssh_url": "git@github.com:michalvalasek/nand2tetris.git", + "clone_url": "https://github.com/michalvalasek/nand2tetris.git", + "svn_url": "https://github.com/michalvalasek/nand2tetris", + "homepage": null, + "size": 252, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 8787730, + "name": "nand2tetris", + "full_name": "ragnarosa/nand2tetris", + "owner": { + "login": "ragnarosa", + "id": 3847529, + "avatar_url": "https://avatars.githubusercontent.com/u/3847529?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ragnarosa", + "html_url": "https://github.com/ragnarosa", + "followers_url": "https://api.github.com/users/ragnarosa/followers", + "following_url": "https://api.github.com/users/ragnarosa/following{/other_user}", + "gists_url": "https://api.github.com/users/ragnarosa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ragnarosa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ragnarosa/subscriptions", + "organizations_url": "https://api.github.com/users/ragnarosa/orgs", + "repos_url": "https://api.github.com/users/ragnarosa/repos", + "events_url": "https://api.github.com/users/ragnarosa/events{/privacy}", + "received_events_url": "https://api.github.com/users/ragnarosa/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ragnarosa/nand2tetris", + "description": "Solutions for the exercises from the Nand2Tetris course based on \"Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/ragnarosa/nand2tetris", + "forks_url": "https://api.github.com/repos/ragnarosa/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ragnarosa/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ragnarosa/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ragnarosa/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ragnarosa/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ragnarosa/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ragnarosa/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ragnarosa/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ragnarosa/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ragnarosa/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ragnarosa/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ragnarosa/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ragnarosa/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ragnarosa/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ragnarosa/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ragnarosa/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ragnarosa/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ragnarosa/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ragnarosa/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ragnarosa/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ragnarosa/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ragnarosa/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ragnarosa/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ragnarosa/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ragnarosa/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ragnarosa/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ragnarosa/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ragnarosa/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ragnarosa/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ragnarosa/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ragnarosa/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ragnarosa/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ragnarosa/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ragnarosa/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ragnarosa/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ragnarosa/nand2tetris/deployments", + "created_at": "2013-03-14T23:29:02Z", + "updated_at": "2014-05-21T17:03:20Z", + "pushed_at": "2012-10-21T01:16:57Z", + "git_url": "git://github.com/ragnarosa/nand2tetris.git", + "ssh_url": "git@github.com:ragnarosa/nand2tetris.git", + "clone_url": "https://github.com/ragnarosa/nand2tetris.git", + "svn_url": "https://github.com/ragnarosa/nand2tetris", + "homepage": null, + "size": 576, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 8554163, + "name": "Nand2Tetris", + "full_name": "The-Skas/Nand2Tetris", + "owner": { + "login": "The-Skas", + "id": 3754977, + "avatar_url": "https://avatars.githubusercontent.com/u/3754977?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/The-Skas", + "html_url": "https://github.com/The-Skas", + "followers_url": "https://api.github.com/users/The-Skas/followers", + "following_url": "https://api.github.com/users/The-Skas/following{/other_user}", + "gists_url": "https://api.github.com/users/The-Skas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/The-Skas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/The-Skas/subscriptions", + "organizations_url": "https://api.github.com/users/The-Skas/orgs", + "repos_url": "https://api.github.com/users/The-Skas/repos", + "events_url": "https://api.github.com/users/The-Skas/events{/privacy}", + "received_events_url": "https://api.github.com/users/The-Skas/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/The-Skas/Nand2Tetris", + "description": "My progress in the nand2tetris course :)", + "fork": false, + "url": "https://api.github.com/repos/The-Skas/Nand2Tetris", + "forks_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/The-Skas/Nand2Tetris/deployments", + "created_at": "2013-03-04T11:23:14Z", + "updated_at": "2013-09-09T14:36:48Z", + "pushed_at": "2013-03-04T11:44:12Z", + "git_url": "git://github.com/The-Skas/Nand2Tetris.git", + "ssh_url": "git@github.com:The-Skas/Nand2Tetris.git", + "clone_url": "https://github.com/The-Skas/Nand2Tetris.git", + "svn_url": "https://github.com/The-Skas/Nand2Tetris", + "homepage": null, + "size": 604, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 6664400, + "name": "nand2tetris", + "full_name": "adargel/nand2tetris", + "owner": { + "login": "adargel", + "id": 210133, + "avatar_url": "https://avatars.githubusercontent.com/u/210133?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/adargel", + "html_url": "https://github.com/adargel", + "followers_url": "https://api.github.com/users/adargel/followers", + "following_url": "https://api.github.com/users/adargel/following{/other_user}", + "gists_url": "https://api.github.com/users/adargel/gists{/gist_id}", + "starred_url": "https://api.github.com/users/adargel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/adargel/subscriptions", + "organizations_url": "https://api.github.com/users/adargel/orgs", + "repos_url": "https://api.github.com/users/adargel/repos", + "events_url": "https://api.github.com/users/adargel/events{/privacy}", + "received_events_url": "https://api.github.com/users/adargel/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/adargel/nand2tetris", + "description": "My work through the nand2tetris projects", + "fork": false, + "url": "https://api.github.com/repos/adargel/nand2tetris", + "forks_url": "https://api.github.com/repos/adargel/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/adargel/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/adargel/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/adargel/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/adargel/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/adargel/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/adargel/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/adargel/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/adargel/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/adargel/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/adargel/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/adargel/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/adargel/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/adargel/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/adargel/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/adargel/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/adargel/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/adargel/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/adargel/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/adargel/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/adargel/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/adargel/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/adargel/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/adargel/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/adargel/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/adargel/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/adargel/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/adargel/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/adargel/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/adargel/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/adargel/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/adargel/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/adargel/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/adargel/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/adargel/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/adargel/nand2tetris/deployments", + "created_at": "2012-11-13T02:40:30Z", + "updated_at": "2013-10-16T14:33:51Z", + "pushed_at": "2012-11-13T03:19:15Z", + "git_url": "git://github.com/adargel/nand2tetris.git", + "ssh_url": "git@github.com:adargel/nand2tetris.git", + "clone_url": "https://github.com/adargel/nand2tetris.git", + "svn_url": "https://github.com/adargel/nand2tetris", + "homepage": null, + "size": 268, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 9899438, + "name": "nand2tetris", + "full_name": "markspace/nand2tetris", + "owner": { + "login": "markspace", + "id": 618097, + "avatar_url": "https://avatars.githubusercontent.com/u/618097?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/markspace", + "html_url": "https://github.com/markspace", + "followers_url": "https://api.github.com/users/markspace/followers", + "following_url": "https://api.github.com/users/markspace/following{/other_user}", + "gists_url": "https://api.github.com/users/markspace/gists{/gist_id}", + "starred_url": "https://api.github.com/users/markspace/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/markspace/subscriptions", + "organizations_url": "https://api.github.com/users/markspace/orgs", + "repos_url": "https://api.github.com/users/markspace/repos", + "events_url": "https://api.github.com/users/markspace/events{/privacy}", + "received_events_url": "https://api.github.com/users/markspace/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/markspace/nand2tetris", + "description": "Project files for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/markspace/nand2tetris", + "forks_url": "https://api.github.com/repos/markspace/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/markspace/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/markspace/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/markspace/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/markspace/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/markspace/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/markspace/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/markspace/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/markspace/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/markspace/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/markspace/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/markspace/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/markspace/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/markspace/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/markspace/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/markspace/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/markspace/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/markspace/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/markspace/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/markspace/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/markspace/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/markspace/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/markspace/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/markspace/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/markspace/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/markspace/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/markspace/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/markspace/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/markspace/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/markspace/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/markspace/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/markspace/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/markspace/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/markspace/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/markspace/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/markspace/nand2tetris/deployments", + "created_at": "2013-05-06T23:25:50Z", + "updated_at": "2014-05-16T11:32:49Z", + "pushed_at": "2013-05-06T23:27:03Z", + "git_url": "git://github.com/markspace/nand2tetris.git", + "ssh_url": "git@github.com:markspace/nand2tetris.git", + "clone_url": "https://github.com/markspace/nand2tetris.git", + "svn_url": "https://github.com/markspace/nand2tetris", + "homepage": null, + "size": 256, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 12497454, + "name": "nand2tetris", + "full_name": "SonOfLilit/nand2tetris", + "owner": { + "login": "SonOfLilit", + "id": 14973, + "avatar_url": "https://avatars.githubusercontent.com/u/14973?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/SonOfLilit", + "html_url": "https://github.com/SonOfLilit", + "followers_url": "https://api.github.com/users/SonOfLilit/followers", + "following_url": "https://api.github.com/users/SonOfLilit/following{/other_user}", + "gists_url": "https://api.github.com/users/SonOfLilit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SonOfLilit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SonOfLilit/subscriptions", + "organizations_url": "https://api.github.com/users/SonOfLilit/orgs", + "repos_url": "https://api.github.com/users/SonOfLilit/repos", + "events_url": "https://api.github.com/users/SonOfLilit/events{/privacy}", + "received_events_url": "https://api.github.com/users/SonOfLilit/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/SonOfLilit/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/SonOfLilit/nand2tetris", + "forks_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/SonOfLilit/nand2tetris/deployments", + "created_at": "2013-08-30T23:25:22Z", + "updated_at": "2013-10-23T19:11:53Z", + "pushed_at": "2013-09-02T06:26:19Z", + "git_url": "git://github.com/SonOfLilit/nand2tetris.git", + "ssh_url": "git@github.com:SonOfLilit/nand2tetris.git", + "clone_url": "https://github.com/SonOfLilit/nand2tetris.git", + "svn_url": "https://github.com/SonOfLilit/nand2tetris", + "homepage": null, + "size": 712, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 15084149, + "name": "nand2tetris", + "full_name": "gordonmcshane/nand2tetris", + "owner": { + "login": "gordonmcshane", + "id": 3814021, + "avatar_url": "https://avatars.githubusercontent.com/u/3814021?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gordonmcshane", + "html_url": "https://github.com/gordonmcshane", + "followers_url": "https://api.github.com/users/gordonmcshane/followers", + "following_url": "https://api.github.com/users/gordonmcshane/following{/other_user}", + "gists_url": "https://api.github.com/users/gordonmcshane/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gordonmcshane/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gordonmcshane/subscriptions", + "organizations_url": "https://api.github.com/users/gordonmcshane/orgs", + "repos_url": "https://api.github.com/users/gordonmcshane/repos", + "events_url": "https://api.github.com/users/gordonmcshane/events{/privacy}", + "received_events_url": "https://api.github.com/users/gordonmcshane/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gordonmcshane/nand2tetris", + "description": "The Elements of Computing Systems course work", + "fork": false, + "url": "https://api.github.com/repos/gordonmcshane/nand2tetris", + "forks_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gordonmcshane/nand2tetris/deployments", + "created_at": "2013-12-10T17:28:34Z", + "updated_at": "2013-12-18T19:32:46Z", + "pushed_at": "2013-12-18T02:28:34Z", + "git_url": "git://github.com/gordonmcshane/nand2tetris.git", + "ssh_url": "git@github.com:gordonmcshane/nand2tetris.git", + "clone_url": "https://github.com/gordonmcshane/nand2tetris.git", + "svn_url": "https://github.com/gordonmcshane/nand2tetris", + "homepage": null, + "size": 268, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 15712453, + "name": "nand2tetris", + "full_name": "trevwilson/nand2tetris", + "owner": { + "login": "trevwilson", + "id": 1050760, + "avatar_url": "https://avatars.githubusercontent.com/u/1050760?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/trevwilson", + "html_url": "https://github.com/trevwilson", + "followers_url": "https://api.github.com/users/trevwilson/followers", + "following_url": "https://api.github.com/users/trevwilson/following{/other_user}", + "gists_url": "https://api.github.com/users/trevwilson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/trevwilson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/trevwilson/subscriptions", + "organizations_url": "https://api.github.com/users/trevwilson/orgs", + "repos_url": "https://api.github.com/users/trevwilson/repos", + "events_url": "https://api.github.com/users/trevwilson/events{/privacy}", + "received_events_url": "https://api.github.com/users/trevwilson/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/trevwilson/nand2tetris", + "description": "Building a computer from scratch following \"The Elements of Computing Systems\" from http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/trevwilson/nand2tetris", + "forks_url": "https://api.github.com/repos/trevwilson/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/trevwilson/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/trevwilson/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/trevwilson/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/trevwilson/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/trevwilson/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/trevwilson/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/trevwilson/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/trevwilson/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/trevwilson/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/trevwilson/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/trevwilson/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/trevwilson/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/trevwilson/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/trevwilson/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/trevwilson/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/trevwilson/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/trevwilson/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/trevwilson/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/trevwilson/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/trevwilson/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/trevwilson/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/trevwilson/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/trevwilson/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/trevwilson/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/trevwilson/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/trevwilson/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/trevwilson/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/trevwilson/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/trevwilson/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/trevwilson/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/trevwilson/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/trevwilson/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/trevwilson/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/trevwilson/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/trevwilson/nand2tetris/deployments", + "created_at": "2014-01-07T18:15:40Z", + "updated_at": "2014-01-07T18:18:45Z", + "pushed_at": "2014-01-07T18:18:44Z", + "git_url": "git://github.com/trevwilson/nand2tetris.git", + "ssh_url": "git@github.com:trevwilson/nand2tetris.git", + "clone_url": "https://github.com/trevwilson/nand2tetris.git", + "svn_url": "https://github.com/trevwilson/nand2tetris", + "homepage": null, + "size": 256, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 15457815, + "name": "nand2tetris", + "full_name": "lithium/nand2tetris", + "owner": { + "login": "lithium", + "id": 16558, + "avatar_url": "https://avatars.githubusercontent.com/u/16558?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lithium", + "html_url": "https://github.com/lithium", + "followers_url": "https://api.github.com/users/lithium/followers", + "following_url": "https://api.github.com/users/lithium/following{/other_user}", + "gists_url": "https://api.github.com/users/lithium/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lithium/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lithium/subscriptions", + "organizations_url": "https://api.github.com/users/lithium/orgs", + "repos_url": "https://api.github.com/users/lithium/repos", + "events_url": "https://api.github.com/users/lithium/events{/privacy}", + "received_events_url": "https://api.github.com/users/lithium/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lithium/nand2tetris", + "description": "my work repository for Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/lithium/nand2tetris", + "forks_url": "https://api.github.com/repos/lithium/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lithium/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lithium/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lithium/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lithium/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lithium/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lithium/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lithium/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lithium/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lithium/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lithium/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lithium/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lithium/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lithium/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lithium/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lithium/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lithium/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lithium/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lithium/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lithium/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lithium/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lithium/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lithium/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lithium/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lithium/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lithium/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lithium/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lithium/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lithium/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lithium/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lithium/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lithium/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lithium/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lithium/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lithium/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lithium/nand2tetris/deployments", + "created_at": "2013-12-26T18:10:18Z", + "updated_at": "2014-01-11T19:58:42Z", + "pushed_at": "2014-01-11T19:58:41Z", + "git_url": "git://github.com/lithium/nand2tetris.git", + "ssh_url": "git@github.com:lithium/nand2tetris.git", + "clone_url": "https://github.com/lithium/nand2tetris.git", + "svn_url": "https://github.com/lithium/nand2tetris", + "homepage": null, + "size": 412, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 10811465, + "name": "nand2tetris", + "full_name": "jamesyp/nand2tetris", + "owner": { + "login": "jamesyp", + "id": 478238, + "avatar_url": "https://avatars.githubusercontent.com/u/478238?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jamesyp", + "html_url": "https://github.com/jamesyp", + "followers_url": "https://api.github.com/users/jamesyp/followers", + "following_url": "https://api.github.com/users/jamesyp/following{/other_user}", + "gists_url": "https://api.github.com/users/jamesyp/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jamesyp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jamesyp/subscriptions", + "organizations_url": "https://api.github.com/users/jamesyp/orgs", + "repos_url": "https://api.github.com/users/jamesyp/repos", + "events_url": "https://api.github.com/users/jamesyp/events{/privacy}", + "received_events_url": "https://api.github.com/users/jamesyp/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jamesyp/nand2tetris", + "description": "Build a computer from scratch from nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/jamesyp/nand2tetris", + "forks_url": "https://api.github.com/repos/jamesyp/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jamesyp/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jamesyp/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jamesyp/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jamesyp/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jamesyp/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jamesyp/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jamesyp/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jamesyp/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jamesyp/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jamesyp/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jamesyp/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jamesyp/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jamesyp/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jamesyp/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jamesyp/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jamesyp/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jamesyp/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jamesyp/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jamesyp/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jamesyp/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jamesyp/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jamesyp/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jamesyp/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jamesyp/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jamesyp/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jamesyp/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jamesyp/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jamesyp/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jamesyp/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jamesyp/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jamesyp/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jamesyp/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jamesyp/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jamesyp/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jamesyp/nand2tetris/deployments", + "created_at": "2013-06-20T03:34:06Z", + "updated_at": "2013-10-03T00:49:55Z", + "pushed_at": "2013-06-30T07:58:52Z", + "git_url": "git://github.com/jamesyp/nand2tetris.git", + "ssh_url": "git@github.com:jamesyp/nand2tetris.git", + "clone_url": "https://github.com/jamesyp/nand2tetris.git", + "svn_url": "https://github.com/jamesyp/nand2tetris", + "homepage": null, + "size": 1304, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 10923690, + "name": "nand2tetris", + "full_name": "griffordson/nand2tetris", + "owner": { + "login": "griffordson", + "id": 16569, + "avatar_url": "https://avatars.githubusercontent.com/u/16569?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/griffordson", + "html_url": "https://github.com/griffordson", + "followers_url": "https://api.github.com/users/griffordson/followers", + "following_url": "https://api.github.com/users/griffordson/following{/other_user}", + "gists_url": "https://api.github.com/users/griffordson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/griffordson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/griffordson/subscriptions", + "organizations_url": "https://api.github.com/users/griffordson/orgs", + "repos_url": "https://api.github.com/users/griffordson/repos", + "events_url": "https://api.github.com/users/griffordson/events{/privacy}", + "received_events_url": "https://api.github.com/users/griffordson/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/griffordson/nand2tetris", + "description": "My project repo for the Nand2Tetris course found at http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/griffordson/nand2tetris", + "forks_url": "https://api.github.com/repos/griffordson/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/griffordson/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/griffordson/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/griffordson/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/griffordson/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/griffordson/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/griffordson/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/griffordson/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/griffordson/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/griffordson/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/griffordson/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/griffordson/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/griffordson/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/griffordson/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/griffordson/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/griffordson/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/griffordson/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/griffordson/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/griffordson/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/griffordson/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/griffordson/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/griffordson/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/griffordson/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/griffordson/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/griffordson/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/griffordson/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/griffordson/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/griffordson/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/griffordson/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/griffordson/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/griffordson/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/griffordson/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/griffordson/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/griffordson/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/griffordson/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/griffordson/nand2tetris/deployments", + "created_at": "2013-06-25T00:07:49Z", + "updated_at": "2014-06-12T12:55:32Z", + "pushed_at": "2013-06-25T03:56:36Z", + "git_url": "git://github.com/griffordson/nand2tetris.git", + "ssh_url": "git@github.com:griffordson/nand2tetris.git", + "clone_url": "https://github.com/griffordson/nand2tetris.git", + "svn_url": "https://github.com/griffordson/nand2tetris", + "homepage": null, + "size": 292, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 10945869, + "name": "nand2tetris", + "full_name": "MGD1981/nand2tetris", + "owner": { + "login": "MGD1981", + "id": 3987917, + "avatar_url": "https://avatars.githubusercontent.com/u/3987917?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MGD1981", + "html_url": "https://github.com/MGD1981", + "followers_url": "https://api.github.com/users/MGD1981/followers", + "following_url": "https://api.github.com/users/MGD1981/following{/other_user}", + "gists_url": "https://api.github.com/users/MGD1981/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MGD1981/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MGD1981/subscriptions", + "organizations_url": "https://api.github.com/users/MGD1981/orgs", + "repos_url": "https://api.github.com/users/MGD1981/repos", + "events_url": "https://api.github.com/users/MGD1981/events{/privacy}", + "received_events_url": "https://api.github.com/users/MGD1981/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MGD1981/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/MGD1981/nand2tetris", + "forks_url": "https://api.github.com/repos/MGD1981/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/MGD1981/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MGD1981/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MGD1981/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/MGD1981/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/MGD1981/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/MGD1981/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/MGD1981/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/MGD1981/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/MGD1981/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/MGD1981/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MGD1981/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MGD1981/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MGD1981/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MGD1981/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MGD1981/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/MGD1981/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/MGD1981/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/MGD1981/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/MGD1981/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/MGD1981/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MGD1981/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MGD1981/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MGD1981/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MGD1981/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/MGD1981/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MGD1981/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/MGD1981/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MGD1981/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/MGD1981/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/MGD1981/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MGD1981/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MGD1981/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MGD1981/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/MGD1981/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/MGD1981/nand2tetris/deployments", + "created_at": "2013-06-25T18:04:58Z", + "updated_at": "2014-04-22T08:30:05Z", + "pushed_at": "2013-08-27T21:18:44Z", + "git_url": "git://github.com/MGD1981/nand2tetris.git", + "ssh_url": "git@github.com:MGD1981/nand2tetris.git", + "clone_url": "https://github.com/MGD1981/nand2tetris.git", + "svn_url": "https://github.com/MGD1981/nand2tetris", + "homepage": null, + "size": 246, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 11685898, + "name": "nand2tetris", + "full_name": "jffjs/nand2tetris", + "owner": { + "login": "jffjs", + "id": 384388, + "avatar_url": "https://avatars.githubusercontent.com/u/384388?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jffjs", + "html_url": "https://github.com/jffjs", + "followers_url": "https://api.github.com/users/jffjs/followers", + "following_url": "https://api.github.com/users/jffjs/following{/other_user}", + "gists_url": "https://api.github.com/users/jffjs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jffjs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jffjs/subscriptions", + "organizations_url": "https://api.github.com/users/jffjs/orgs", + "repos_url": "https://api.github.com/users/jffjs/repos", + "events_url": "https://api.github.com/users/jffjs/events{/privacy}", + "received_events_url": "https://api.github.com/users/jffjs/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jffjs/nand2tetris", + "description": "Projects from \"The Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/jffjs/nand2tetris", + "forks_url": "https://api.github.com/repos/jffjs/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jffjs/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jffjs/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jffjs/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jffjs/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jffjs/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jffjs/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jffjs/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jffjs/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jffjs/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jffjs/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jffjs/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jffjs/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jffjs/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jffjs/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jffjs/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jffjs/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jffjs/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jffjs/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jffjs/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jffjs/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jffjs/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jffjs/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jffjs/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jffjs/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jffjs/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jffjs/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jffjs/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jffjs/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jffjs/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jffjs/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jffjs/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jffjs/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jffjs/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jffjs/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jffjs/nand2tetris/deployments", + "created_at": "2013-07-26T13:07:49Z", + "updated_at": "2014-03-23T13:32:16Z", + "pushed_at": "2013-08-07T19:40:55Z", + "git_url": "git://github.com/jffjs/nand2tetris.git", + "ssh_url": "git@github.com:jffjs/nand2tetris.git", + "clone_url": "https://github.com/jffjs/nand2tetris.git", + "svn_url": "https://github.com/jffjs/nand2tetris", + "homepage": null, + "size": 340, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 7659009, + "name": "nand2tetris_project", + "full_name": "flourscent/nand2tetris_project", + "owner": { + "login": "flourscent", + "id": 485039, + "avatar_url": "https://avatars.githubusercontent.com/u/485039?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/flourscent", + "html_url": "https://github.com/flourscent", + "followers_url": "https://api.github.com/users/flourscent/followers", + "following_url": "https://api.github.com/users/flourscent/following{/other_user}", + "gists_url": "https://api.github.com/users/flourscent/gists{/gist_id}", + "starred_url": "https://api.github.com/users/flourscent/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/flourscent/subscriptions", + "organizations_url": "https://api.github.com/users/flourscent/orgs", + "repos_url": "https://api.github.com/users/flourscent/repos", + "events_url": "https://api.github.com/users/flourscent/events{/privacy}", + "received_events_url": "https://api.github.com/users/flourscent/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/flourscent/nand2tetris_project", + "description": "solutions for exercises of nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/flourscent/nand2tetris_project", + "forks_url": "https://api.github.com/repos/flourscent/nand2tetris_project/forks", + "keys_url": "https://api.github.com/repos/flourscent/nand2tetris_project/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/flourscent/nand2tetris_project/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/flourscent/nand2tetris_project/teams", + "hooks_url": "https://api.github.com/repos/flourscent/nand2tetris_project/hooks", + "issue_events_url": "https://api.github.com/repos/flourscent/nand2tetris_project/issues/events{/number}", + "events_url": "https://api.github.com/repos/flourscent/nand2tetris_project/events", + "assignees_url": "https://api.github.com/repos/flourscent/nand2tetris_project/assignees{/user}", + "branches_url": "https://api.github.com/repos/flourscent/nand2tetris_project/branches{/branch}", + "tags_url": "https://api.github.com/repos/flourscent/nand2tetris_project/tags", + "blobs_url": "https://api.github.com/repos/flourscent/nand2tetris_project/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/flourscent/nand2tetris_project/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/flourscent/nand2tetris_project/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/flourscent/nand2tetris_project/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/flourscent/nand2tetris_project/statuses/{sha}", + "languages_url": "https://api.github.com/repos/flourscent/nand2tetris_project/languages", + "stargazers_url": "https://api.github.com/repos/flourscent/nand2tetris_project/stargazers", + "contributors_url": "https://api.github.com/repos/flourscent/nand2tetris_project/contributors", + "subscribers_url": "https://api.github.com/repos/flourscent/nand2tetris_project/subscribers", + "subscription_url": "https://api.github.com/repos/flourscent/nand2tetris_project/subscription", + "commits_url": "https://api.github.com/repos/flourscent/nand2tetris_project/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/flourscent/nand2tetris_project/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/flourscent/nand2tetris_project/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/flourscent/nand2tetris_project/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/flourscent/nand2tetris_project/contents/{+path}", + "compare_url": "https://api.github.com/repos/flourscent/nand2tetris_project/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/flourscent/nand2tetris_project/merges", + "archive_url": "https://api.github.com/repos/flourscent/nand2tetris_project/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/flourscent/nand2tetris_project/downloads", + "issues_url": "https://api.github.com/repos/flourscent/nand2tetris_project/issues{/number}", + "pulls_url": "https://api.github.com/repos/flourscent/nand2tetris_project/pulls{/number}", + "milestones_url": "https://api.github.com/repos/flourscent/nand2tetris_project/milestones{/number}", + "notifications_url": "https://api.github.com/repos/flourscent/nand2tetris_project/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/flourscent/nand2tetris_project/labels{/name}", + "releases_url": "https://api.github.com/repos/flourscent/nand2tetris_project/releases{/id}", + "deployments_url": "https://api.github.com/repos/flourscent/nand2tetris_project/deployments", + "created_at": "2013-01-17T03:27:20Z", + "updated_at": "2013-10-02T02:58:56Z", + "pushed_at": "2013-07-13T10:53:37Z", + "git_url": "git://github.com/flourscent/nand2tetris_project.git", + "ssh_url": "git@github.com:flourscent/nand2tetris_project.git", + "clone_url": "https://github.com/flourscent/nand2tetris_project.git", + "svn_url": "https://github.com/flourscent/nand2tetris_project", + "homepage": null, + "size": 312, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 11432357, + "name": "nand2tetris", + "full_name": "JHonaker/nand2tetris", + "owner": { + "login": "JHonaker", + "id": 3012597, + "avatar_url": "https://avatars.githubusercontent.com/u/3012597?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/JHonaker", + "html_url": "https://github.com/JHonaker", + "followers_url": "https://api.github.com/users/JHonaker/followers", + "following_url": "https://api.github.com/users/JHonaker/following{/other_user}", + "gists_url": "https://api.github.com/users/JHonaker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JHonaker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JHonaker/subscriptions", + "organizations_url": "https://api.github.com/users/JHonaker/orgs", + "repos_url": "https://api.github.com/users/JHonaker/repos", + "events_url": "https://api.github.com/users/JHonaker/events{/privacy}", + "received_events_url": "https://api.github.com/users/JHonaker/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/JHonaker/nand2tetris", + "description": "My work on the nand2tetris project.", + "fork": false, + "url": "https://api.github.com/repos/JHonaker/nand2tetris", + "forks_url": "https://api.github.com/repos/JHonaker/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/JHonaker/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/JHonaker/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/JHonaker/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/JHonaker/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/JHonaker/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/JHonaker/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/JHonaker/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/JHonaker/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/JHonaker/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/JHonaker/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/JHonaker/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/JHonaker/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/JHonaker/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/JHonaker/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/JHonaker/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/JHonaker/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/JHonaker/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/JHonaker/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/JHonaker/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/JHonaker/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/JHonaker/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/JHonaker/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/JHonaker/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/JHonaker/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/JHonaker/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/JHonaker/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/JHonaker/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/JHonaker/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/JHonaker/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/JHonaker/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/JHonaker/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/JHonaker/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/JHonaker/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/JHonaker/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/JHonaker/nand2tetris/deployments", + "created_at": "2013-07-15T20:04:44Z", + "updated_at": "2014-05-17T15:22:04Z", + "pushed_at": "2014-05-17T15:22:05Z", + "git_url": "git://github.com/JHonaker/nand2tetris.git", + "ssh_url": "git@github.com:JHonaker/nand2tetris.git", + "clone_url": "https://github.com/JHonaker/nand2tetris.git", + "svn_url": "https://github.com/JHonaker/nand2tetris", + "homepage": null, + "size": 388, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 16031337, + "name": "nand2tetris", + "full_name": "urthbound/nand2tetris", + "owner": { + "login": "urthbound", + "id": 4204764, + "avatar_url": "https://avatars.githubusercontent.com/u/4204764?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/urthbound", + "html_url": "https://github.com/urthbound", + "followers_url": "https://api.github.com/users/urthbound/followers", + "following_url": "https://api.github.com/users/urthbound/following{/other_user}", + "gists_url": "https://api.github.com/users/urthbound/gists{/gist_id}", + "starred_url": "https://api.github.com/users/urthbound/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/urthbound/subscriptions", + "organizations_url": "https://api.github.com/users/urthbound/orgs", + "repos_url": "https://api.github.com/users/urthbound/repos", + "events_url": "https://api.github.com/users/urthbound/events{/privacy}", + "received_events_url": "https://api.github.com/users/urthbound/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/urthbound/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/urthbound/nand2tetris", + "forks_url": "https://api.github.com/repos/urthbound/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/urthbound/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/urthbound/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/urthbound/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/urthbound/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/urthbound/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/urthbound/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/urthbound/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/urthbound/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/urthbound/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/urthbound/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/urthbound/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/urthbound/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/urthbound/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/urthbound/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/urthbound/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/urthbound/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/urthbound/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/urthbound/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/urthbound/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/urthbound/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/urthbound/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/urthbound/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/urthbound/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/urthbound/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/urthbound/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/urthbound/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/urthbound/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/urthbound/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/urthbound/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/urthbound/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/urthbound/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/urthbound/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/urthbound/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/urthbound/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/urthbound/nand2tetris/deployments", + "created_at": "2014-01-18T18:33:01Z", + "updated_at": "2014-03-03T17:56:00Z", + "pushed_at": "2014-03-03T17:56:00Z", + "git_url": "git://github.com/urthbound/nand2tetris.git", + "ssh_url": "git@github.com:urthbound/nand2tetris.git", + "clone_url": "https://github.com/urthbound/nand2tetris.git", + "svn_url": "https://github.com/urthbound/nand2tetris", + "homepage": null, + "size": 1088, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 16209981, + "name": "nand2tetris", + "full_name": "michaelschem/nand2tetris", + "owner": { + "login": "michaelschem", + "id": 2836129, + "avatar_url": "https://avatars.githubusercontent.com/u/2836129?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/michaelschem", + "html_url": "https://github.com/michaelschem", + "followers_url": "https://api.github.com/users/michaelschem/followers", + "following_url": "https://api.github.com/users/michaelschem/following{/other_user}", + "gists_url": "https://api.github.com/users/michaelschem/gists{/gist_id}", + "starred_url": "https://api.github.com/users/michaelschem/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/michaelschem/subscriptions", + "organizations_url": "https://api.github.com/users/michaelschem/orgs", + "repos_url": "https://api.github.com/users/michaelschem/repos", + "events_url": "https://api.github.com/users/michaelschem/events{/privacy}", + "received_events_url": "https://api.github.com/users/michaelschem/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/michaelschem/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/michaelschem/nand2tetris", + "forks_url": "https://api.github.com/repos/michaelschem/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/michaelschem/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/michaelschem/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/michaelschem/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/michaelschem/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/michaelschem/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/michaelschem/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/michaelschem/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/michaelschem/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/michaelschem/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/michaelschem/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/michaelschem/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/michaelschem/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/michaelschem/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/michaelschem/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/michaelschem/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/michaelschem/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/michaelschem/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/michaelschem/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/michaelschem/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/michaelschem/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/michaelschem/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/michaelschem/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/michaelschem/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/michaelschem/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/michaelschem/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/michaelschem/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/michaelschem/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/michaelschem/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/michaelschem/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/michaelschem/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/michaelschem/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/michaelschem/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/michaelschem/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/michaelschem/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/michaelschem/nand2tetris/deployments", + "created_at": "2014-01-24T16:29:09Z", + "updated_at": "2014-03-03T07:47:13Z", + "pushed_at": "2014-03-03T07:47:11Z", + "git_url": "git://github.com/michaelschem/nand2tetris.git", + "ssh_url": "git@github.com:michaelschem/nand2tetris.git", + "clone_url": "https://github.com/michaelschem/nand2tetris.git", + "svn_url": "https://github.com/michaelschem/nand2tetris", + "homepage": null, + "size": 416, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 26594374, + "name": "nand2tetris", + "full_name": "zoeames/nand2tetris", + "owner": { + "login": "zoeames", + "id": 8093647, + "avatar_url": "https://avatars.githubusercontent.com/u/8093647?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zoeames", + "html_url": "https://github.com/zoeames", + "followers_url": "https://api.github.com/users/zoeames/followers", + "following_url": "https://api.github.com/users/zoeames/following{/other_user}", + "gists_url": "https://api.github.com/users/zoeames/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zoeames/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zoeames/subscriptions", + "organizations_url": "https://api.github.com/users/zoeames/orgs", + "repos_url": "https://api.github.com/users/zoeames/repos", + "events_url": "https://api.github.com/users/zoeames/events{/privacy}", + "received_events_url": "https://api.github.com/users/zoeames/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/zoeames/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/zoeames/nand2tetris", + "forks_url": "https://api.github.com/repos/zoeames/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/zoeames/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zoeames/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zoeames/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/zoeames/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/zoeames/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/zoeames/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/zoeames/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/zoeames/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/zoeames/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/zoeames/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zoeames/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zoeames/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zoeames/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zoeames/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zoeames/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/zoeames/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/zoeames/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/zoeames/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/zoeames/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/zoeames/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zoeames/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zoeames/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zoeames/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zoeames/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/zoeames/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zoeames/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/zoeames/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zoeames/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/zoeames/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/zoeames/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zoeames/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zoeames/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zoeames/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/zoeames/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/zoeames/nand2tetris/deployments", + "created_at": "2014-11-13T15:33:59Z", + "updated_at": "2014-11-13T15:34:49Z", + "pushed_at": "2014-11-13T15:34:57Z", + "git_url": "git://github.com/zoeames/nand2tetris.git", + "ssh_url": "git@github.com:zoeames/nand2tetris.git", + "clone_url": "https://github.com/zoeames/nand2tetris.git", + "svn_url": "https://github.com/zoeames/nand2tetris", + "homepage": null, + "size": 648, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 26594532, + "name": "nand2tetris", + "full_name": "SarahMPearson/nand2tetris", + "owner": { + "login": "SarahMPearson", + "id": 8082567, + "avatar_url": "https://avatars.githubusercontent.com/u/8082567?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/SarahMPearson", + "html_url": "https://github.com/SarahMPearson", + "followers_url": "https://api.github.com/users/SarahMPearson/followers", + "following_url": "https://api.github.com/users/SarahMPearson/following{/other_user}", + "gists_url": "https://api.github.com/users/SarahMPearson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SarahMPearson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SarahMPearson/subscriptions", + "organizations_url": "https://api.github.com/users/SarahMPearson/orgs", + "repos_url": "https://api.github.com/users/SarahMPearson/repos", + "events_url": "https://api.github.com/users/SarahMPearson/events{/privacy}", + "received_events_url": "https://api.github.com/users/SarahMPearson/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/SarahMPearson/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/SarahMPearson/nand2tetris", + "forks_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/SarahMPearson/nand2tetris/deployments", + "created_at": "2014-11-13T15:37:14Z", + "updated_at": "2014-11-13T15:37:48Z", + "pushed_at": "2014-11-13T15:37:48Z", + "git_url": "git://github.com/SarahMPearson/nand2tetris.git", + "ssh_url": "git@github.com:SarahMPearson/nand2tetris.git", + "clone_url": "https://github.com/SarahMPearson/nand2tetris.git", + "svn_url": "https://github.com/SarahMPearson/nand2tetris", + "homepage": null, + "size": 620, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 27518528, + "name": "nand2tetris", + "full_name": "idrisr/nand2tetris", + "owner": { + "login": "idrisr", + "id": 531245, + "avatar_url": "https://avatars.githubusercontent.com/u/531245?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/idrisr", + "html_url": "https://github.com/idrisr", + "followers_url": "https://api.github.com/users/idrisr/followers", + "following_url": "https://api.github.com/users/idrisr/following{/other_user}", + "gists_url": "https://api.github.com/users/idrisr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/idrisr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/idrisr/subscriptions", + "organizations_url": "https://api.github.com/users/idrisr/orgs", + "repos_url": "https://api.github.com/users/idrisr/repos", + "events_url": "https://api.github.com/users/idrisr/events{/privacy}", + "received_events_url": "https://api.github.com/users/idrisr/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/idrisr/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/idrisr/nand2tetris", + "forks_url": "https://api.github.com/repos/idrisr/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/idrisr/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/idrisr/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/idrisr/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/idrisr/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/idrisr/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/idrisr/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/idrisr/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/idrisr/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/idrisr/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/idrisr/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/idrisr/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/idrisr/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/idrisr/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/idrisr/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/idrisr/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/idrisr/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/idrisr/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/idrisr/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/idrisr/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/idrisr/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/idrisr/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/idrisr/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/idrisr/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/idrisr/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/idrisr/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/idrisr/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/idrisr/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/idrisr/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/idrisr/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/idrisr/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/idrisr/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/idrisr/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/idrisr/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/idrisr/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/idrisr/nand2tetris/deployments", + "created_at": "2014-12-04T02:12:43Z", + "updated_at": "2015-01-03T02:00:16Z", + "pushed_at": "2015-01-03T02:00:13Z", + "git_url": "git://github.com/idrisr/nand2tetris.git", + "ssh_url": "git@github.com:idrisr/nand2tetris.git", + "clone_url": "https://github.com/idrisr/nand2tetris.git", + "svn_url": "https://github.com/idrisr/nand2tetris", + "homepage": null, + "size": 1008, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 20048121, + "name": "nand2tetris_projects", + "full_name": "nand2tetris/nand2tetris_projects", + "owner": { + "login": "nand2tetris", + "id": 7664553, + "avatar_url": "https://avatars.githubusercontent.com/u/7664553?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nand2tetris", + "html_url": "https://github.com/nand2tetris", + "followers_url": "https://api.github.com/users/nand2tetris/followers", + "following_url": "https://api.github.com/users/nand2tetris/following{/other_user}", + "gists_url": "https://api.github.com/users/nand2tetris/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nand2tetris/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nand2tetris/subscriptions", + "organizations_url": "https://api.github.com/users/nand2tetris/orgs", + "repos_url": "https://api.github.com/users/nand2tetris/repos", + "events_url": "https://api.github.com/users/nand2tetris/events{/privacy}", + "received_events_url": "https://api.github.com/users/nand2tetris/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nand2tetris/nand2tetris_projects", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects", + "forks_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/forks", + "keys_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/teams", + "hooks_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/hooks", + "issue_events_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/events", + "assignees_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/tags", + "blobs_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/languages", + "stargazers_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/stargazers", + "contributors_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/contributors", + "subscribers_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/subscribers", + "subscription_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/subscription", + "commits_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/merges", + "archive_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/downloads", + "issues_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/labels{/name}", + "releases_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/nand2tetris/nand2tetris_projects/deployments", + "created_at": "2014-05-22T04:43:07Z", + "updated_at": "2015-02-12T17:38:32Z", + "pushed_at": "2015-02-15T23:53:03Z", + "git_url": "git://github.com/nand2tetris/nand2tetris_projects.git", + "ssh_url": "git@github.com:nand2tetris/nand2tetris_projects.git", + "clone_url": "https://github.com/nand2tetris/nand2tetris_projects.git", + "svn_url": "https://github.com/nand2tetris/nand2tetris_projects", + "homepage": null, + "size": 300, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 20573643, + "name": "nand2tetris", + "full_name": "somasekhar44/nand2tetris", + "owner": { + "login": "somasekhar44", + "id": 7722978, + "avatar_url": "https://avatars.githubusercontent.com/u/7722978?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/somasekhar44", + "html_url": "https://github.com/somasekhar44", + "followers_url": "https://api.github.com/users/somasekhar44/followers", + "following_url": "https://api.github.com/users/somasekhar44/following{/other_user}", + "gists_url": "https://api.github.com/users/somasekhar44/gists{/gist_id}", + "starred_url": "https://api.github.com/users/somasekhar44/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/somasekhar44/subscriptions", + "organizations_url": "https://api.github.com/users/somasekhar44/orgs", + "repos_url": "https://api.github.com/users/somasekhar44/repos", + "events_url": "https://api.github.com/users/somasekhar44/events{/privacy}", + "received_events_url": "https://api.github.com/users/somasekhar44/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/somasekhar44/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/somasekhar44/nand2tetris", + "forks_url": "https://api.github.com/repos/somasekhar44/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/somasekhar44/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/somasekhar44/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/somasekhar44/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/somasekhar44/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/somasekhar44/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/somasekhar44/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/somasekhar44/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/somasekhar44/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/somasekhar44/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/somasekhar44/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/somasekhar44/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/somasekhar44/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/somasekhar44/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/somasekhar44/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/somasekhar44/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/somasekhar44/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/somasekhar44/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/somasekhar44/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/somasekhar44/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/somasekhar44/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/somasekhar44/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/somasekhar44/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/somasekhar44/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/somasekhar44/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/somasekhar44/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/somasekhar44/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/somasekhar44/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/somasekhar44/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/somasekhar44/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/somasekhar44/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/somasekhar44/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/somasekhar44/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/somasekhar44/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/somasekhar44/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/somasekhar44/nand2tetris/deployments", + "created_at": "2014-06-06T18:23:24Z", + "updated_at": "2014-06-07T18:39:11Z", + "pushed_at": "2014-06-07T18:39:11Z", + "git_url": "git://github.com/somasekhar44/nand2tetris.git", + "ssh_url": "git@github.com:somasekhar44/nand2tetris.git", + "clone_url": "https://github.com/somasekhar44/nand2tetris.git", + "svn_url": "https://github.com/somasekhar44/nand2tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 31287364, + "name": "nand2tetris", + "full_name": "emhoracek/nand2tetris", + "owner": { + "login": "emhoracek", + "id": 5353499, + "avatar_url": "https://avatars.githubusercontent.com/u/5353499?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/emhoracek", + "html_url": "https://github.com/emhoracek", + "followers_url": "https://api.github.com/users/emhoracek/followers", + "following_url": "https://api.github.com/users/emhoracek/following{/other_user}", + "gists_url": "https://api.github.com/users/emhoracek/gists{/gist_id}", + "starred_url": "https://api.github.com/users/emhoracek/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/emhoracek/subscriptions", + "organizations_url": "https://api.github.com/users/emhoracek/orgs", + "repos_url": "https://api.github.com/users/emhoracek/repos", + "events_url": "https://api.github.com/users/emhoracek/events{/privacy}", + "received_events_url": "https://api.github.com/users/emhoracek/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/emhoracek/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/emhoracek/nand2tetris", + "forks_url": "https://api.github.com/repos/emhoracek/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/emhoracek/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/emhoracek/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/emhoracek/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/emhoracek/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/emhoracek/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/emhoracek/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/emhoracek/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/emhoracek/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/emhoracek/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/emhoracek/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/emhoracek/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/emhoracek/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/emhoracek/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/emhoracek/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/emhoracek/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/emhoracek/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/emhoracek/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/emhoracek/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/emhoracek/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/emhoracek/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/emhoracek/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/emhoracek/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/emhoracek/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/emhoracek/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/emhoracek/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/emhoracek/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/emhoracek/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/emhoracek/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/emhoracek/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/emhoracek/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/emhoracek/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/emhoracek/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/emhoracek/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/emhoracek/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/emhoracek/nand2tetris/deployments", + "created_at": "2015-02-24T23:24:56Z", + "updated_at": "2015-02-25T21:58:59Z", + "pushed_at": "2015-02-25T21:58:59Z", + "git_url": "git://github.com/emhoracek/nand2tetris.git", + "ssh_url": "git@github.com:emhoracek/nand2tetris.git", + "clone_url": "https://github.com/emhoracek/nand2tetris.git", + "svn_url": "https://github.com/emhoracek/nand2tetris", + "homepage": null, + "size": 240, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 30423512, + "name": "nand2tetris", + "full_name": "Desyz/nand2tetris", + "owner": { + "login": "Desyz", + "id": 6963093, + "avatar_url": "https://avatars.githubusercontent.com/u/6963093?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Desyz", + "html_url": "https://github.com/Desyz", + "followers_url": "https://api.github.com/users/Desyz/followers", + "following_url": "https://api.github.com/users/Desyz/following{/other_user}", + "gists_url": "https://api.github.com/users/Desyz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Desyz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Desyz/subscriptions", + "organizations_url": "https://api.github.com/users/Desyz/orgs", + "repos_url": "https://api.github.com/users/Desyz/repos", + "events_url": "https://api.github.com/users/Desyz/events{/privacy}", + "received_events_url": "https://api.github.com/users/Desyz/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Desyz/nand2tetris", + "description": "A side project to help me with my computer architecture class", + "fork": false, + "url": "https://api.github.com/repos/Desyz/nand2tetris", + "forks_url": "https://api.github.com/repos/Desyz/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Desyz/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Desyz/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Desyz/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Desyz/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Desyz/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Desyz/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Desyz/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Desyz/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Desyz/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Desyz/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Desyz/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Desyz/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Desyz/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Desyz/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Desyz/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Desyz/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Desyz/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Desyz/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Desyz/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Desyz/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Desyz/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Desyz/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Desyz/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Desyz/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Desyz/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Desyz/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Desyz/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Desyz/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Desyz/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Desyz/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Desyz/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Desyz/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Desyz/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Desyz/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Desyz/nand2tetris/deployments", + "created_at": "2015-02-06T17:12:42Z", + "updated_at": "2015-04-26T19:40:08Z", + "pushed_at": "2015-04-26T19:40:08Z", + "git_url": "git://github.com/Desyz/nand2tetris.git", + "ssh_url": "git@github.com:Desyz/nand2tetris.git", + "clone_url": "https://github.com/Desyz/nand2tetris.git", + "svn_url": "https://github.com/Desyz/nand2tetris", + "homepage": null, + "size": 704, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 37908960, + "name": "nand2tetris", + "full_name": "debugger87/nand2tetris", + "owner": { + "login": "debugger87", + "id": 763168, + "avatar_url": "https://avatars.githubusercontent.com/u/763168?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/debugger87", + "html_url": "https://github.com/debugger87", + "followers_url": "https://api.github.com/users/debugger87/followers", + "following_url": "https://api.github.com/users/debugger87/following{/other_user}", + "gists_url": "https://api.github.com/users/debugger87/gists{/gist_id}", + "starred_url": "https://api.github.com/users/debugger87/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/debugger87/subscriptions", + "organizations_url": "https://api.github.com/users/debugger87/orgs", + "repos_url": "https://api.github.com/users/debugger87/repos", + "events_url": "https://api.github.com/users/debugger87/events{/privacy}", + "received_events_url": "https://api.github.com/users/debugger87/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/debugger87/nand2tetris", + "description": "nand2tetris problems", + "fork": false, + "url": "https://api.github.com/repos/debugger87/nand2tetris", + "forks_url": "https://api.github.com/repos/debugger87/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/debugger87/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/debugger87/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/debugger87/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/debugger87/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/debugger87/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/debugger87/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/debugger87/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/debugger87/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/debugger87/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/debugger87/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/debugger87/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/debugger87/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/debugger87/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/debugger87/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/debugger87/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/debugger87/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/debugger87/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/debugger87/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/debugger87/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/debugger87/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/debugger87/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/debugger87/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/debugger87/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/debugger87/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/debugger87/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/debugger87/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/debugger87/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/debugger87/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/debugger87/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/debugger87/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/debugger87/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/debugger87/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/debugger87/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/debugger87/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/debugger87/nand2tetris/deployments", + "created_at": "2015-06-23T09:13:59Z", + "updated_at": "2015-06-23T09:15:27Z", + "pushed_at": "2015-06-23T10:42:26Z", + "git_url": "git://github.com/debugger87/nand2tetris.git", + "ssh_url": "git@github.com:debugger87/nand2tetris.git", + "clone_url": "https://github.com/debugger87/nand2tetris.git", + "svn_url": "https://github.com/debugger87/nand2tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 41134098, + "name": "nand2tetris", + "full_name": "saiki/nand2tetris", + "owner": { + "login": "saiki", + "id": 81905, + "avatar_url": "https://avatars.githubusercontent.com/u/81905?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/saiki", + "html_url": "https://github.com/saiki", + "followers_url": "https://api.github.com/users/saiki/followers", + "following_url": "https://api.github.com/users/saiki/following{/other_user}", + "gists_url": "https://api.github.com/users/saiki/gists{/gist_id}", + "starred_url": "https://api.github.com/users/saiki/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/saiki/subscriptions", + "organizations_url": "https://api.github.com/users/saiki/orgs", + "repos_url": "https://api.github.com/users/saiki/repos", + "events_url": "https://api.github.com/users/saiki/events{/privacy}", + "received_events_url": "https://api.github.com/users/saiki/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/saiki/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/saiki/nand2tetris", + "forks_url": "https://api.github.com/repos/saiki/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/saiki/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/saiki/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/saiki/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/saiki/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/saiki/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/saiki/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/saiki/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/saiki/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/saiki/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/saiki/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/saiki/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/saiki/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/saiki/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/saiki/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/saiki/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/saiki/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/saiki/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/saiki/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/saiki/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/saiki/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/saiki/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/saiki/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/saiki/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/saiki/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/saiki/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/saiki/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/saiki/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/saiki/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/saiki/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/saiki/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/saiki/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/saiki/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/saiki/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/saiki/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/saiki/nand2tetris/deployments", + "created_at": "2015-08-21T04:10:03Z", + "updated_at": "2015-08-21T04:13:28Z", + "pushed_at": "2015-08-25T04:06:24Z", + "git_url": "git://github.com/saiki/nand2tetris.git", + "ssh_url": "git@github.com:saiki/nand2tetris.git", + "clone_url": "https://github.com/saiki/nand2tetris.git", + "svn_url": "https://github.com/saiki/nand2tetris", + "homepage": null, + "size": 292, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 39359003, + "name": "nand2tetris-dist", + "full_name": "nicolasmiller/nand2tetris-dist", + "owner": { + "login": "nicolasmiller", + "id": 1240015, + "avatar_url": "https://avatars.githubusercontent.com/u/1240015?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nicolasmiller", + "html_url": "https://github.com/nicolasmiller", + "followers_url": "https://api.github.com/users/nicolasmiller/followers", + "following_url": "https://api.github.com/users/nicolasmiller/following{/other_user}", + "gists_url": "https://api.github.com/users/nicolasmiller/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nicolasmiller/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nicolasmiller/subscriptions", + "organizations_url": "https://api.github.com/users/nicolasmiller/orgs", + "repos_url": "https://api.github.com/users/nicolasmiller/repos", + "events_url": "https://api.github.com/users/nicolasmiller/events{/privacy}", + "received_events_url": "https://api.github.com/users/nicolasmiller/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nicolasmiller/nand2tetris-dist", + "description": "Git mirror of Nand2Tetris exercise distribution", + "fork": false, + "url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist", + "forks_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/forks", + "keys_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/teams", + "hooks_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/hooks", + "issue_events_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/issues/events{/number}", + "events_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/events", + "assignees_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/assignees{/user}", + "branches_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/branches{/branch}", + "tags_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/tags", + "blobs_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/languages", + "stargazers_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/stargazers", + "contributors_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/contributors", + "subscribers_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/subscribers", + "subscription_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/subscription", + "commits_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/contents/{+path}", + "compare_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/merges", + "archive_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/downloads", + "issues_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/issues{/number}", + "pulls_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/labels{/name}", + "releases_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/releases{/id}", + "deployments_url": "https://api.github.com/repos/nicolasmiller/nand2tetris-dist/deployments", + "created_at": "2015-07-20T02:40:05Z", + "updated_at": "2015-07-20T02:42:18Z", + "pushed_at": "2015-07-20T02:42:18Z", + "git_url": "git://github.com/nicolasmiller/nand2tetris-dist.git", + "ssh_url": "git@github.com:nicolasmiller/nand2tetris-dist.git", + "clone_url": "https://github.com/nicolasmiller/nand2tetris-dist.git", + "svn_url": "https://github.com/nicolasmiller/nand2tetris-dist", + "homepage": null, + "size": 648, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 42673792, + "name": "nand2tetris", + "full_name": "CestDiego/nand2tetris", + "owner": { + "login": "CestDiego", + "id": 3291619, + "avatar_url": "https://avatars.githubusercontent.com/u/3291619?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/CestDiego", + "html_url": "https://github.com/CestDiego", + "followers_url": "https://api.github.com/users/CestDiego/followers", + "following_url": "https://api.github.com/users/CestDiego/following{/other_user}", + "gists_url": "https://api.github.com/users/CestDiego/gists{/gist_id}", + "starred_url": "https://api.github.com/users/CestDiego/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CestDiego/subscriptions", + "organizations_url": "https://api.github.com/users/CestDiego/orgs", + "repos_url": "https://api.github.com/users/CestDiego/repos", + "events_url": "https://api.github.com/users/CestDiego/events{/privacy}", + "received_events_url": "https://api.github.com/users/CestDiego/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/CestDiego/nand2tetris", + "description": "Progress on nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/CestDiego/nand2tetris", + "forks_url": "https://api.github.com/repos/CestDiego/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/CestDiego/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/CestDiego/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/CestDiego/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/CestDiego/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/CestDiego/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/CestDiego/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/CestDiego/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/CestDiego/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/CestDiego/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/CestDiego/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/CestDiego/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/CestDiego/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/CestDiego/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/CestDiego/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/CestDiego/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/CestDiego/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/CestDiego/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/CestDiego/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/CestDiego/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/CestDiego/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/CestDiego/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/CestDiego/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/CestDiego/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/CestDiego/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/CestDiego/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/CestDiego/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/CestDiego/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/CestDiego/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/CestDiego/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/CestDiego/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/CestDiego/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/CestDiego/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/CestDiego/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/CestDiego/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/CestDiego/nand2tetris/deployments", + "created_at": "2015-09-17T18:22:28Z", + "updated_at": "2015-09-17T18:23:07Z", + "pushed_at": "2015-09-17T18:23:05Z", + "git_url": "git://github.com/CestDiego/nand2tetris.git", + "ssh_url": "git@github.com:CestDiego/nand2tetris.git", + "clone_url": "https://github.com/CestDiego/nand2tetris.git", + "svn_url": "https://github.com/CestDiego/nand2tetris", + "homepage": null, + "size": 664, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 39877990, + "name": "nand2tetris", + "full_name": "abalone0204/nand2tetris", + "owner": { + "login": "abalone0204", + "id": 5833391, + "avatar_url": "https://avatars.githubusercontent.com/u/5833391?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/abalone0204", + "html_url": "https://github.com/abalone0204", + "followers_url": "https://api.github.com/users/abalone0204/followers", + "following_url": "https://api.github.com/users/abalone0204/following{/other_user}", + "gists_url": "https://api.github.com/users/abalone0204/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abalone0204/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abalone0204/subscriptions", + "organizations_url": "https://api.github.com/users/abalone0204/orgs", + "repos_url": "https://api.github.com/users/abalone0204/repos", + "events_url": "https://api.github.com/users/abalone0204/events{/privacy}", + "received_events_url": "https://api.github.com/users/abalone0204/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/abalone0204/nand2tetris", + "description": "Learn about the truly fundamental elements of computer science!", + "fork": false, + "url": "https://api.github.com/repos/abalone0204/nand2tetris", + "forks_url": "https://api.github.com/repos/abalone0204/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/abalone0204/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/abalone0204/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/abalone0204/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/abalone0204/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/abalone0204/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/abalone0204/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/abalone0204/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/abalone0204/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/abalone0204/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/abalone0204/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/abalone0204/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/abalone0204/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/abalone0204/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/abalone0204/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/abalone0204/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/abalone0204/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/abalone0204/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/abalone0204/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/abalone0204/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/abalone0204/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/abalone0204/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/abalone0204/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/abalone0204/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/abalone0204/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/abalone0204/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/abalone0204/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/abalone0204/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/abalone0204/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/abalone0204/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/abalone0204/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/abalone0204/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/abalone0204/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/abalone0204/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/abalone0204/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/abalone0204/nand2tetris/deployments", + "created_at": "2015-07-29T06:43:32Z", + "updated_at": "2015-07-29T06:43:58Z", + "pushed_at": "2015-08-21T06:42:52Z", + "git_url": "git://github.com/abalone0204/nand2tetris.git", + "ssh_url": "git@github.com:abalone0204/nand2tetris.git", + "clone_url": "https://github.com/abalone0204/nand2tetris.git", + "svn_url": "https://github.com/abalone0204/nand2tetris", + "homepage": null, + "size": 776, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 33706500, + "name": "nand2tetris", + "full_name": "Snamich/nand2tetris", + "owner": { + "login": "Snamich", + "id": 122707, + "avatar_url": "https://avatars.githubusercontent.com/u/122707?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Snamich", + "html_url": "https://github.com/Snamich", + "followers_url": "https://api.github.com/users/Snamich/followers", + "following_url": "https://api.github.com/users/Snamich/following{/other_user}", + "gists_url": "https://api.github.com/users/Snamich/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Snamich/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Snamich/subscriptions", + "organizations_url": "https://api.github.com/users/Snamich/orgs", + "repos_url": "https://api.github.com/users/Snamich/repos", + "events_url": "https://api.github.com/users/Snamich/events{/privacy}", + "received_events_url": "https://api.github.com/users/Snamich/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Snamich/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Snamich/nand2tetris", + "forks_url": "https://api.github.com/repos/Snamich/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Snamich/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Snamich/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Snamich/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Snamich/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Snamich/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Snamich/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Snamich/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Snamich/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Snamich/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Snamich/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Snamich/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Snamich/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Snamich/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Snamich/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Snamich/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Snamich/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Snamich/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Snamich/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Snamich/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Snamich/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Snamich/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Snamich/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Snamich/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Snamich/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Snamich/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Snamich/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Snamich/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Snamich/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Snamich/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Snamich/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Snamich/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Snamich/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Snamich/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Snamich/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Snamich/nand2tetris/deployments", + "created_at": "2015-04-10T03:31:39Z", + "updated_at": "2015-05-07T04:31:42Z", + "pushed_at": "2015-06-13T19:54:19Z", + "git_url": "git://github.com/Snamich/nand2tetris.git", + "ssh_url": "git@github.com:Snamich/nand2tetris.git", + "clone_url": "https://github.com/Snamich/nand2tetris.git", + "svn_url": "https://github.com/Snamich/nand2tetris", + "homepage": null, + "size": 288, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 33446727, + "name": "nand2tetris", + "full_name": "diskkid/nand2tetris", + "owner": { + "login": "diskkid", + "id": 10434974, + "avatar_url": "https://avatars.githubusercontent.com/u/10434974?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/diskkid", + "html_url": "https://github.com/diskkid", + "followers_url": "https://api.github.com/users/diskkid/followers", + "following_url": "https://api.github.com/users/diskkid/following{/other_user}", + "gists_url": "https://api.github.com/users/diskkid/gists{/gist_id}", + "starred_url": "https://api.github.com/users/diskkid/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/diskkid/subscriptions", + "organizations_url": "https://api.github.com/users/diskkid/orgs", + "repos_url": "https://api.github.com/users/diskkid/repos", + "events_url": "https://api.github.com/users/diskkid/events{/privacy}", + "received_events_url": "https://api.github.com/users/diskkid/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/diskkid/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/diskkid/nand2tetris", + "forks_url": "https://api.github.com/repos/diskkid/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/diskkid/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/diskkid/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/diskkid/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/diskkid/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/diskkid/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/diskkid/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/diskkid/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/diskkid/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/diskkid/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/diskkid/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/diskkid/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/diskkid/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/diskkid/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/diskkid/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/diskkid/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/diskkid/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/diskkid/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/diskkid/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/diskkid/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/diskkid/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/diskkid/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/diskkid/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/diskkid/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/diskkid/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/diskkid/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/diskkid/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/diskkid/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/diskkid/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/diskkid/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/diskkid/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/diskkid/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/diskkid/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/diskkid/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/diskkid/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/diskkid/nand2tetris/deployments", + "created_at": "2015-04-05T16:16:07Z", + "updated_at": "2015-04-12T14:51:43Z", + "pushed_at": "2015-04-12T14:51:42Z", + "git_url": "git://github.com/diskkid/nand2tetris.git", + "ssh_url": "git@github.com:diskkid/nand2tetris.git", + "clone_url": "https://github.com/diskkid/nand2tetris.git", + "svn_url": "https://github.com/diskkid/nand2tetris", + "homepage": null, + "size": 260, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 33283809, + "name": "nand2tetris", + "full_name": "ayachigin/nand2tetris", + "owner": { + "login": "ayachigin", + "id": 3293049, + "avatar_url": "https://avatars.githubusercontent.com/u/3293049?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ayachigin", + "html_url": "https://github.com/ayachigin", + "followers_url": "https://api.github.com/users/ayachigin/followers", + "following_url": "https://api.github.com/users/ayachigin/following{/other_user}", + "gists_url": "https://api.github.com/users/ayachigin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayachigin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayachigin/subscriptions", + "organizations_url": "https://api.github.com/users/ayachigin/orgs", + "repos_url": "https://api.github.com/users/ayachigin/repos", + "events_url": "https://api.github.com/users/ayachigin/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayachigin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ayachigin/nand2tetris", + "description": "コンピュータシステムの理論と実装", + "fork": false, + "url": "https://api.github.com/repos/ayachigin/nand2tetris", + "forks_url": "https://api.github.com/repos/ayachigin/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ayachigin/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ayachigin/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ayachigin/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ayachigin/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ayachigin/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ayachigin/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ayachigin/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ayachigin/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ayachigin/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ayachigin/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ayachigin/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ayachigin/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ayachigin/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ayachigin/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ayachigin/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ayachigin/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ayachigin/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ayachigin/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ayachigin/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ayachigin/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ayachigin/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ayachigin/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ayachigin/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ayachigin/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ayachigin/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ayachigin/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ayachigin/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ayachigin/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ayachigin/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ayachigin/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ayachigin/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ayachigin/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ayachigin/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ayachigin/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ayachigin/nand2tetris/deployments", + "created_at": "2015-04-02T02:03:34Z", + "updated_at": "2015-04-09T12:46:39Z", + "pushed_at": "2015-04-09T12:46:39Z", + "git_url": "git://github.com/ayachigin/nand2tetris.git", + "ssh_url": "git@github.com:ayachigin/nand2tetris.git", + "clone_url": "https://github.com/ayachigin/nand2tetris.git", + "svn_url": "https://github.com/ayachigin/nand2tetris", + "homepage": null, + "size": 328, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 33070618, + "name": "nand2tetris", + "full_name": "tmtk75/nand2tetris", + "owner": { + "login": "tmtk75", + "id": 425100, + "avatar_url": "https://avatars.githubusercontent.com/u/425100?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tmtk75", + "html_url": "https://github.com/tmtk75", + "followers_url": "https://api.github.com/users/tmtk75/followers", + "following_url": "https://api.github.com/users/tmtk75/following{/other_user}", + "gists_url": "https://api.github.com/users/tmtk75/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tmtk75/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tmtk75/subscriptions", + "organizations_url": "https://api.github.com/users/tmtk75/orgs", + "repos_url": "https://api.github.com/users/tmtk75/repos", + "events_url": "https://api.github.com/users/tmtk75/events{/privacy}", + "received_events_url": "https://api.github.com/users/tmtk75/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tmtk75/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/tmtk75/nand2tetris", + "forks_url": "https://api.github.com/repos/tmtk75/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tmtk75/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tmtk75/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tmtk75/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tmtk75/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tmtk75/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tmtk75/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tmtk75/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tmtk75/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tmtk75/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tmtk75/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tmtk75/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tmtk75/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tmtk75/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tmtk75/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tmtk75/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tmtk75/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tmtk75/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tmtk75/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tmtk75/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tmtk75/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tmtk75/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tmtk75/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tmtk75/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tmtk75/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tmtk75/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tmtk75/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tmtk75/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tmtk75/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tmtk75/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tmtk75/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tmtk75/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tmtk75/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tmtk75/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tmtk75/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tmtk75/nand2tetris/deployments", + "created_at": "2015-03-29T11:30:26Z", + "updated_at": "2015-03-29T11:30:59Z", + "pushed_at": "2015-03-29T12:25:24Z", + "git_url": "git://github.com/tmtk75/nand2tetris.git", + "ssh_url": "git@github.com:tmtk75/nand2tetris.git", + "clone_url": "https://github.com/tmtk75/nand2tetris.git", + "svn_url": "https://github.com/tmtk75/nand2tetris", + "homepage": null, + "size": 2480, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "ch2.5", + "score": 3.2584372 + }, + { + "id": 35925804, + "name": "nand2tetris", + "full_name": "gwincr11/nand2tetris", + "owner": { + "login": "gwincr11", + "id": 289882, + "avatar_url": "https://avatars.githubusercontent.com/u/289882?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gwincr11", + "html_url": "https://github.com/gwincr11", + "followers_url": "https://api.github.com/users/gwincr11/followers", + "following_url": "https://api.github.com/users/gwincr11/following{/other_user}", + "gists_url": "https://api.github.com/users/gwincr11/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gwincr11/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gwincr11/subscriptions", + "organizations_url": "https://api.github.com/users/gwincr11/orgs", + "repos_url": "https://api.github.com/users/gwincr11/repos", + "events_url": "https://api.github.com/users/gwincr11/events{/privacy}", + "received_events_url": "https://api.github.com/users/gwincr11/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gwincr11/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/gwincr11/nand2tetris", + "forks_url": "https://api.github.com/repos/gwincr11/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/gwincr11/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gwincr11/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gwincr11/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/gwincr11/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/gwincr11/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gwincr11/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/gwincr11/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gwincr11/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gwincr11/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/gwincr11/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gwincr11/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gwincr11/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gwincr11/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gwincr11/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gwincr11/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/gwincr11/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/gwincr11/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/gwincr11/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/gwincr11/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/gwincr11/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gwincr11/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gwincr11/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gwincr11/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gwincr11/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gwincr11/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gwincr11/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/gwincr11/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gwincr11/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/gwincr11/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gwincr11/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gwincr11/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gwincr11/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gwincr11/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gwincr11/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gwincr11/nand2tetris/deployments", + "created_at": "2015-05-20T04:29:55Z", + "updated_at": "2015-05-20T04:31:11Z", + "pushed_at": "2015-05-20T04:31:01Z", + "git_url": "git://github.com/gwincr11/nand2tetris.git", + "ssh_url": "git@github.com:gwincr11/nand2tetris.git", + "clone_url": "https://github.com/gwincr11/nand2tetris.git", + "svn_url": "https://github.com/gwincr11/nand2tetris", + "homepage": null, + "size": 308, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 36359589, + "name": "nand2tetris", + "full_name": "MrOerni/nand2tetris", + "owner": { + "login": "MrOerni", + "id": 2965273, + "avatar_url": "https://avatars.githubusercontent.com/u/2965273?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MrOerni", + "html_url": "https://github.com/MrOerni", + "followers_url": "https://api.github.com/users/MrOerni/followers", + "following_url": "https://api.github.com/users/MrOerni/following{/other_user}", + "gists_url": "https://api.github.com/users/MrOerni/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MrOerni/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MrOerni/subscriptions", + "organizations_url": "https://api.github.com/users/MrOerni/orgs", + "repos_url": "https://api.github.com/users/MrOerni/repos", + "events_url": "https://api.github.com/users/MrOerni/events{/privacy}", + "received_events_url": "https://api.github.com/users/MrOerni/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MrOerni/nand2tetris", + "description": "The solutions for the nand2tetris.org course", + "fork": false, + "url": "https://api.github.com/repos/MrOerni/nand2tetris", + "forks_url": "https://api.github.com/repos/MrOerni/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/MrOerni/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MrOerni/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MrOerni/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/MrOerni/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/MrOerni/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/MrOerni/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/MrOerni/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/MrOerni/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/MrOerni/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/MrOerni/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MrOerni/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MrOerni/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MrOerni/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MrOerni/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MrOerni/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/MrOerni/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/MrOerni/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/MrOerni/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/MrOerni/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/MrOerni/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MrOerni/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MrOerni/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MrOerni/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MrOerni/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/MrOerni/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MrOerni/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/MrOerni/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MrOerni/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/MrOerni/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/MrOerni/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MrOerni/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MrOerni/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MrOerni/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/MrOerni/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/MrOerni/nand2tetris/deployments", + "created_at": "2015-05-27T10:23:37Z", + "updated_at": "2015-05-27T10:30:19Z", + "pushed_at": "2015-06-30T08:53:39Z", + "git_url": "git://github.com/MrOerni/nand2tetris.git", + "ssh_url": "git@github.com:MrOerni/nand2tetris.git", + "clone_url": "https://github.com/MrOerni/nand2tetris.git", + "svn_url": "https://github.com/MrOerni/nand2tetris", + "homepage": null, + "size": 452, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 36632332, + "name": "nand2tetris", + "full_name": "xbsd/nand2tetris", + "owner": { + "login": "xbsd", + "id": 1044445, + "avatar_url": "https://avatars.githubusercontent.com/u/1044445?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xbsd", + "html_url": "https://github.com/xbsd", + "followers_url": "https://api.github.com/users/xbsd/followers", + "following_url": "https://api.github.com/users/xbsd/following{/other_user}", + "gists_url": "https://api.github.com/users/xbsd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xbsd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xbsd/subscriptions", + "organizations_url": "https://api.github.com/users/xbsd/orgs", + "repos_url": "https://api.github.com/users/xbsd/repos", + "events_url": "https://api.github.com/users/xbsd/events{/privacy}", + "received_events_url": "https://api.github.com/users/xbsd/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/xbsd/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/xbsd/nand2tetris", + "forks_url": "https://api.github.com/repos/xbsd/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/xbsd/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xbsd/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xbsd/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/xbsd/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/xbsd/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/xbsd/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/xbsd/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/xbsd/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/xbsd/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/xbsd/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xbsd/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xbsd/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xbsd/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xbsd/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xbsd/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/xbsd/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/xbsd/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/xbsd/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/xbsd/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/xbsd/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xbsd/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xbsd/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xbsd/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xbsd/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/xbsd/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xbsd/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/xbsd/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xbsd/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/xbsd/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/xbsd/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xbsd/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xbsd/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xbsd/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/xbsd/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/xbsd/nand2tetris/deployments", + "created_at": "2015-06-01T02:09:29Z", + "updated_at": "2015-06-01T02:13:53Z", + "pushed_at": "2015-06-04T23:35:36Z", + "git_url": "git://github.com/xbsd/nand2tetris.git", + "ssh_url": "git@github.com:xbsd/nand2tetris.git", + "clone_url": "https://github.com/xbsd/nand2tetris.git", + "svn_url": "https://github.com/xbsd/nand2tetris", + "homepage": null, + "size": 5636, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 34914063, + "name": "nand2tetris", + "full_name": "devgi/nand2tetris", + "owner": { + "login": "devgi", + "id": 4704722, + "avatar_url": "https://avatars.githubusercontent.com/u/4704722?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/devgi", + "html_url": "https://github.com/devgi", + "followers_url": "https://api.github.com/users/devgi/followers", + "following_url": "https://api.github.com/users/devgi/following{/other_user}", + "gists_url": "https://api.github.com/users/devgi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/devgi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/devgi/subscriptions", + "organizations_url": "https://api.github.com/users/devgi/orgs", + "repos_url": "https://api.github.com/users/devgi/repos", + "events_url": "https://api.github.com/users/devgi/events{/privacy}", + "received_events_url": "https://api.github.com/users/devgi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/devgi/nand2tetris", + "description": "Nand2Tetris IDC 2015", + "fork": false, + "url": "https://api.github.com/repos/devgi/nand2tetris", + "forks_url": "https://api.github.com/repos/devgi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/devgi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/devgi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/devgi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/devgi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/devgi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/devgi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/devgi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/devgi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/devgi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/devgi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/devgi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/devgi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/devgi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/devgi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/devgi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/devgi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/devgi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/devgi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/devgi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/devgi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/devgi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/devgi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/devgi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/devgi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/devgi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/devgi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/devgi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/devgi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/devgi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/devgi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/devgi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/devgi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/devgi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/devgi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/devgi/nand2tetris/deployments", + "created_at": "2015-05-01T17:18:12Z", + "updated_at": "2015-05-05T18:48:26Z", + "pushed_at": "2015-07-18T16:07:09Z", + "git_url": "git://github.com/devgi/nand2tetris.git", + "ssh_url": "git@github.com:devgi/nand2tetris.git", + "clone_url": "https://github.com/devgi/nand2tetris.git", + "svn_url": "https://github.com/devgi/nand2tetris", + "homepage": null, + "size": 412, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 34896789, + "name": "nand2tetris", + "full_name": "jyukutyo/nand2tetris", + "owner": { + "login": "jyukutyo", + "id": 60008, + "avatar_url": "https://avatars.githubusercontent.com/u/60008?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jyukutyo", + "html_url": "https://github.com/jyukutyo", + "followers_url": "https://api.github.com/users/jyukutyo/followers", + "following_url": "https://api.github.com/users/jyukutyo/following{/other_user}", + "gists_url": "https://api.github.com/users/jyukutyo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jyukutyo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jyukutyo/subscriptions", + "organizations_url": "https://api.github.com/users/jyukutyo/orgs", + "repos_url": "https://api.github.com/users/jyukutyo/repos", + "events_url": "https://api.github.com/users/jyukutyo/events{/privacy}", + "received_events_url": "https://api.github.com/users/jyukutyo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jyukutyo/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jyukutyo/nand2tetris", + "forks_url": "https://api.github.com/repos/jyukutyo/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jyukutyo/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jyukutyo/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jyukutyo/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jyukutyo/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jyukutyo/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jyukutyo/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jyukutyo/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jyukutyo/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jyukutyo/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jyukutyo/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jyukutyo/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jyukutyo/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jyukutyo/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jyukutyo/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jyukutyo/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jyukutyo/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jyukutyo/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jyukutyo/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jyukutyo/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jyukutyo/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jyukutyo/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jyukutyo/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jyukutyo/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jyukutyo/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jyukutyo/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jyukutyo/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jyukutyo/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jyukutyo/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jyukutyo/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jyukutyo/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jyukutyo/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jyukutyo/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jyukutyo/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jyukutyo/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jyukutyo/nand2tetris/deployments", + "created_at": "2015-05-01T09:33:33Z", + "updated_at": "2015-05-07T10:49:54Z", + "pushed_at": "2015-09-15T10:36:46Z", + "git_url": "git://github.com/jyukutyo/nand2tetris.git", + "ssh_url": "git@github.com:jyukutyo/nand2tetris.git", + "clone_url": "https://github.com/jyukutyo/nand2tetris.git", + "svn_url": "https://github.com/jyukutyo/nand2tetris", + "homepage": null, + "size": 312, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 34999439, + "name": "nand2tetris", + "full_name": "akshatshibu/nand2tetris", + "owner": { + "login": "akshatshibu", + "id": 11056030, + "avatar_url": "https://avatars.githubusercontent.com/u/11056030?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/akshatshibu", + "html_url": "https://github.com/akshatshibu", + "followers_url": "https://api.github.com/users/akshatshibu/followers", + "following_url": "https://api.github.com/users/akshatshibu/following{/other_user}", + "gists_url": "https://api.github.com/users/akshatshibu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/akshatshibu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/akshatshibu/subscriptions", + "organizations_url": "https://api.github.com/users/akshatshibu/orgs", + "repos_url": "https://api.github.com/users/akshatshibu/repos", + "events_url": "https://api.github.com/users/akshatshibu/events{/privacy}", + "received_events_url": "https://api.github.com/users/akshatshibu/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/akshatshibu/nand2tetris", + "description": "Nand2tetris is the course based on \"Building a Modern Computer from First Principles \".", + "fork": false, + "url": "https://api.github.com/repos/akshatshibu/nand2tetris", + "forks_url": "https://api.github.com/repos/akshatshibu/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/akshatshibu/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/akshatshibu/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/akshatshibu/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/akshatshibu/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/akshatshibu/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/akshatshibu/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/akshatshibu/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/akshatshibu/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/akshatshibu/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/akshatshibu/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/akshatshibu/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/akshatshibu/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/akshatshibu/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/akshatshibu/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/akshatshibu/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/akshatshibu/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/akshatshibu/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/akshatshibu/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/akshatshibu/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/akshatshibu/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/akshatshibu/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/akshatshibu/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/akshatshibu/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/akshatshibu/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/akshatshibu/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/akshatshibu/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/akshatshibu/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/akshatshibu/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/akshatshibu/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/akshatshibu/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/akshatshibu/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/akshatshibu/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/akshatshibu/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/akshatshibu/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/akshatshibu/nand2tetris/deployments", + "created_at": "2015-05-03T20:20:23Z", + "updated_at": "2015-05-03T21:06:16Z", + "pushed_at": "2015-05-03T21:06:16Z", + "git_url": "git://github.com/akshatshibu/nand2tetris.git", + "ssh_url": "git@github.com:akshatshibu/nand2tetris.git", + "clone_url": "https://github.com/akshatshibu/nand2tetris.git", + "svn_url": "https://github.com/akshatshibu/nand2tetris", + "homepage": null, + "size": 1192, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 34049837, + "name": "nand2tetris", + "full_name": "fonglh/nand2tetris", + "owner": { + "login": "fonglh", + "id": 1902527, + "avatar_url": "https://avatars.githubusercontent.com/u/1902527?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/fonglh", + "html_url": "https://github.com/fonglh", + "followers_url": "https://api.github.com/users/fonglh/followers", + "following_url": "https://api.github.com/users/fonglh/following{/other_user}", + "gists_url": "https://api.github.com/users/fonglh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fonglh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fonglh/subscriptions", + "organizations_url": "https://api.github.com/users/fonglh/orgs", + "repos_url": "https://api.github.com/users/fonglh/repos", + "events_url": "https://api.github.com/users/fonglh/events{/privacy}", + "received_events_url": "https://api.github.com/users/fonglh/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/fonglh/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/fonglh/nand2tetris", + "forks_url": "https://api.github.com/repos/fonglh/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/fonglh/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/fonglh/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/fonglh/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/fonglh/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/fonglh/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/fonglh/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/fonglh/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/fonglh/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/fonglh/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/fonglh/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/fonglh/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/fonglh/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/fonglh/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/fonglh/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/fonglh/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/fonglh/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/fonglh/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/fonglh/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/fonglh/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/fonglh/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/fonglh/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/fonglh/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/fonglh/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/fonglh/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/fonglh/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/fonglh/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/fonglh/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/fonglh/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/fonglh/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/fonglh/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/fonglh/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/fonglh/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/fonglh/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/fonglh/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/fonglh/nand2tetris/deployments", + "created_at": "2015-04-16T10:37:33Z", + "updated_at": "2015-04-16T10:38:52Z", + "pushed_at": "2015-04-16T10:38:51Z", + "git_url": "git://github.com/fonglh/nand2tetris.git", + "ssh_url": "git@github.com:fonglh/nand2tetris.git", + "clone_url": "https://github.com/fonglh/nand2tetris.git", + "svn_url": "https://github.com/fonglh/nand2tetris", + "homepage": null, + "size": 256, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 33833400, + "name": "nand2tetris", + "full_name": "mostlyerror/nand2tetris", + "owner": { + "login": "mostlyerror", + "id": 2030072, + "avatar_url": "https://avatars.githubusercontent.com/u/2030072?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mostlyerror", + "html_url": "https://github.com/mostlyerror", + "followers_url": "https://api.github.com/users/mostlyerror/followers", + "following_url": "https://api.github.com/users/mostlyerror/following{/other_user}", + "gists_url": "https://api.github.com/users/mostlyerror/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mostlyerror/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mostlyerror/subscriptions", + "organizations_url": "https://api.github.com/users/mostlyerror/orgs", + "repos_url": "https://api.github.com/users/mostlyerror/repos", + "events_url": "https://api.github.com/users/mostlyerror/events{/privacy}", + "received_events_url": "https://api.github.com/users/mostlyerror/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mostlyerror/nand2tetris", + "description": "following along with coursera's Nand To Tetris course... building the hardware/software stack from logic gates up through an assembler, compiler, os, etc", + "fork": false, + "url": "https://api.github.com/repos/mostlyerror/nand2tetris", + "forks_url": "https://api.github.com/repos/mostlyerror/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mostlyerror/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mostlyerror/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mostlyerror/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mostlyerror/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mostlyerror/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mostlyerror/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mostlyerror/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mostlyerror/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mostlyerror/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mostlyerror/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mostlyerror/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mostlyerror/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mostlyerror/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mostlyerror/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mostlyerror/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mostlyerror/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mostlyerror/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mostlyerror/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mostlyerror/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mostlyerror/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mostlyerror/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mostlyerror/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mostlyerror/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mostlyerror/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mostlyerror/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mostlyerror/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mostlyerror/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mostlyerror/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mostlyerror/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mostlyerror/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mostlyerror/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mostlyerror/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mostlyerror/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mostlyerror/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mostlyerror/nand2tetris/deployments", + "created_at": "2015-04-12T20:49:12Z", + "updated_at": "2015-04-12T20:51:31Z", + "pushed_at": "2015-04-12T20:51:30Z", + "git_url": "git://github.com/mostlyerror/nand2tetris.git", + "ssh_url": "git@github.com:mostlyerror/nand2tetris.git", + "clone_url": "https://github.com/mostlyerror/nand2tetris.git", + "svn_url": "https://github.com/mostlyerror/nand2tetris", + "homepage": null, + "size": 612, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 34157266, + "name": "nand2tetris", + "full_name": "alyosha1879/nand2tetris", + "owner": { + "login": "alyosha1879", + "id": 10344226, + "avatar_url": "https://avatars.githubusercontent.com/u/10344226?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/alyosha1879", + "html_url": "https://github.com/alyosha1879", + "followers_url": "https://api.github.com/users/alyosha1879/followers", + "following_url": "https://api.github.com/users/alyosha1879/following{/other_user}", + "gists_url": "https://api.github.com/users/alyosha1879/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alyosha1879/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alyosha1879/subscriptions", + "organizations_url": "https://api.github.com/users/alyosha1879/orgs", + "repos_url": "https://api.github.com/users/alyosha1879/repos", + "events_url": "https://api.github.com/users/alyosha1879/events{/privacy}", + "received_events_url": "https://api.github.com/users/alyosha1879/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/alyosha1879/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/alyosha1879/nand2tetris", + "forks_url": "https://api.github.com/repos/alyosha1879/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/alyosha1879/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alyosha1879/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alyosha1879/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/alyosha1879/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/alyosha1879/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/alyosha1879/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/alyosha1879/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/alyosha1879/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/alyosha1879/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/alyosha1879/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alyosha1879/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alyosha1879/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alyosha1879/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alyosha1879/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alyosha1879/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/alyosha1879/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/alyosha1879/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/alyosha1879/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/alyosha1879/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/alyosha1879/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alyosha1879/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alyosha1879/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alyosha1879/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alyosha1879/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/alyosha1879/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alyosha1879/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/alyosha1879/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alyosha1879/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/alyosha1879/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/alyosha1879/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alyosha1879/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alyosha1879/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alyosha1879/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/alyosha1879/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/alyosha1879/nand2tetris/deployments", + "created_at": "2015-04-18T07:44:06Z", + "updated_at": "2015-05-05T01:53:51Z", + "pushed_at": "2015-05-05T01:53:51Z", + "git_url": "git://github.com/alyosha1879/nand2tetris.git", + "ssh_url": "git@github.com:alyosha1879/nand2tetris.git", + "clone_url": "https://github.com/alyosha1879/nand2tetris.git", + "svn_url": "https://github.com/alyosha1879/nand2tetris", + "homepage": null, + "size": 188, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 34313152, + "name": "Nand2Tetris", + "full_name": "icecoobe/Nand2Tetris", + "owner": { + "login": "icecoobe", + "id": 1868736, + "avatar_url": "https://avatars.githubusercontent.com/u/1868736?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/icecoobe", + "html_url": "https://github.com/icecoobe", + "followers_url": "https://api.github.com/users/icecoobe/followers", + "following_url": "https://api.github.com/users/icecoobe/following{/other_user}", + "gists_url": "https://api.github.com/users/icecoobe/gists{/gist_id}", + "starred_url": "https://api.github.com/users/icecoobe/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/icecoobe/subscriptions", + "organizations_url": "https://api.github.com/users/icecoobe/orgs", + "repos_url": "https://api.github.com/users/icecoobe/repos", + "events_url": "https://api.github.com/users/icecoobe/events{/privacy}", + "received_events_url": "https://api.github.com/users/icecoobe/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/icecoobe/Nand2Tetris", + "description": "The Projects of the book The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/icecoobe/Nand2Tetris", + "forks_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/icecoobe/Nand2Tetris/deployments", + "created_at": "2015-04-21T08:03:58Z", + "updated_at": "2015-04-21T08:30:16Z", + "pushed_at": "2015-04-21T08:30:16Z", + "git_url": "git://github.com/icecoobe/Nand2Tetris.git", + "ssh_url": "git@github.com:icecoobe/Nand2Tetris.git", + "clone_url": "https://github.com/icecoobe/Nand2Tetris.git", + "svn_url": "https://github.com/icecoobe/Nand2Tetris", + "homepage": null, + "size": 648, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 41619876, + "name": "nand2tetris", + "full_name": "skatsuta/nand2tetris", + "owner": { + "login": "skatsuta", + "id": 5638269, + "avatar_url": "https://avatars.githubusercontent.com/u/5638269?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/skatsuta", + "html_url": "https://github.com/skatsuta", + "followers_url": "https://api.github.com/users/skatsuta/followers", + "following_url": "https://api.github.com/users/skatsuta/following{/other_user}", + "gists_url": "https://api.github.com/users/skatsuta/gists{/gist_id}", + "starred_url": "https://api.github.com/users/skatsuta/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/skatsuta/subscriptions", + "organizations_url": "https://api.github.com/users/skatsuta/orgs", + "repos_url": "https://api.github.com/users/skatsuta/repos", + "events_url": "https://api.github.com/users/skatsuta/events{/privacy}", + "received_events_url": "https://api.github.com/users/skatsuta/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/skatsuta/nand2tetris", + "description": "All the exercises in _The Elements of Computer Systems_.", + "fork": false, + "url": "https://api.github.com/repos/skatsuta/nand2tetris", + "forks_url": "https://api.github.com/repos/skatsuta/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/skatsuta/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/skatsuta/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/skatsuta/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/skatsuta/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/skatsuta/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/skatsuta/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/skatsuta/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/skatsuta/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/skatsuta/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/skatsuta/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/skatsuta/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/skatsuta/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/skatsuta/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/skatsuta/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/skatsuta/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/skatsuta/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/skatsuta/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/skatsuta/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/skatsuta/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/skatsuta/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/skatsuta/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/skatsuta/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/skatsuta/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/skatsuta/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/skatsuta/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/skatsuta/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/skatsuta/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/skatsuta/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/skatsuta/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/skatsuta/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/skatsuta/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/skatsuta/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/skatsuta/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/skatsuta/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/skatsuta/nand2tetris/deployments", + "created_at": "2015-08-30T07:05:32Z", + "updated_at": "2015-09-23T03:27:30Z", + "pushed_at": "2015-12-20T13:50:43Z", + "git_url": "git://github.com/skatsuta/nand2tetris.git", + "ssh_url": "git@github.com:skatsuta/nand2tetris.git", + "clone_url": "https://github.com/skatsuta/nand2tetris.git", + "svn_url": "https://github.com/skatsuta/nand2tetris", + "homepage": null, + "size": 1675, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 42912563, + "name": "nand2tetris", + "full_name": "IanBoyanZhang/nand2tetris", + "owner": { + "login": "IanBoyanZhang", + "id": 4110995, + "avatar_url": "https://avatars.githubusercontent.com/u/4110995?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/IanBoyanZhang", + "html_url": "https://github.com/IanBoyanZhang", + "followers_url": "https://api.github.com/users/IanBoyanZhang/followers", + "following_url": "https://api.github.com/users/IanBoyanZhang/following{/other_user}", + "gists_url": "https://api.github.com/users/IanBoyanZhang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/IanBoyanZhang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/IanBoyanZhang/subscriptions", + "organizations_url": "https://api.github.com/users/IanBoyanZhang/orgs", + "repos_url": "https://api.github.com/users/IanBoyanZhang/repos", + "events_url": "https://api.github.com/users/IanBoyanZhang/events{/privacy}", + "received_events_url": "https://api.github.com/users/IanBoyanZhang/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/IanBoyanZhang/nand2tetris", + "description": "Creating a general purpose computer system, starting from NAND gates all the way up to an implementation of Tetris", + "fork": false, + "url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris", + "forks_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/IanBoyanZhang/nand2tetris/deployments", + "created_at": "2015-09-22T05:04:34Z", + "updated_at": "2015-10-29T06:12:14Z", + "pushed_at": "2015-10-31T16:24:27Z", + "git_url": "git://github.com/IanBoyanZhang/nand2tetris.git", + "ssh_url": "git@github.com:IanBoyanZhang/nand2tetris.git", + "clone_url": "https://github.com/IanBoyanZhang/nand2tetris.git", + "svn_url": "https://github.com/IanBoyanZhang/nand2tetris", + "homepage": "", + "size": 352, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 31045593, + "name": "nand2tetris", + "full_name": "rgravina/nand2tetris", + "owner": { + "login": "rgravina", + "id": 19086, + "avatar_url": "https://avatars.githubusercontent.com/u/19086?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rgravina", + "html_url": "https://github.com/rgravina", + "followers_url": "https://api.github.com/users/rgravina/followers", + "following_url": "https://api.github.com/users/rgravina/following{/other_user}", + "gists_url": "https://api.github.com/users/rgravina/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rgravina/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rgravina/subscriptions", + "organizations_url": "https://api.github.com/users/rgravina/orgs", + "repos_url": "https://api.github.com/users/rgravina/repos", + "events_url": "https://api.github.com/users/rgravina/events{/privacy}", + "received_events_url": "https://api.github.com/users/rgravina/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rgravina/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/rgravina/nand2tetris", + "forks_url": "https://api.github.com/repos/rgravina/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/rgravina/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rgravina/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rgravina/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/rgravina/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/rgravina/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/rgravina/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/rgravina/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/rgravina/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/rgravina/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/rgravina/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rgravina/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rgravina/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rgravina/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rgravina/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rgravina/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/rgravina/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/rgravina/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/rgravina/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/rgravina/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/rgravina/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rgravina/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rgravina/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rgravina/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rgravina/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/rgravina/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rgravina/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/rgravina/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rgravina/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/rgravina/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/rgravina/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rgravina/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rgravina/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rgravina/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/rgravina/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/rgravina/nand2tetris/deployments", + "created_at": "2015-02-20T01:03:36Z", + "updated_at": "2015-05-04T23:22:57Z", + "pushed_at": "2015-10-31T07:52:32Z", + "git_url": "git://github.com/rgravina/nand2tetris.git", + "ssh_url": "git@github.com:rgravina/nand2tetris.git", + "clone_url": "https://github.com/rgravina/nand2tetris.git", + "svn_url": "https://github.com/rgravina/nand2tetris", + "homepage": null, + "size": 1320, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 50275203, + "name": "Nand2Tetris", + "full_name": "addsict/Nand2Tetris", + "owner": { + "login": "addsict", + "id": 1595215, + "avatar_url": "https://avatars.githubusercontent.com/u/1595215?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/addsict", + "html_url": "https://github.com/addsict", + "followers_url": "https://api.github.com/users/addsict/followers", + "following_url": "https://api.github.com/users/addsict/following{/other_user}", + "gists_url": "https://api.github.com/users/addsict/gists{/gist_id}", + "starred_url": "https://api.github.com/users/addsict/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/addsict/subscriptions", + "organizations_url": "https://api.github.com/users/addsict/orgs", + "repos_url": "https://api.github.com/users/addsict/repos", + "events_url": "https://api.github.com/users/addsict/events{/privacy}", + "received_events_url": "https://api.github.com/users/addsict/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/addsict/Nand2Tetris", + "description": "Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/addsict/Nand2Tetris", + "forks_url": "https://api.github.com/repos/addsict/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/addsict/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/addsict/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/addsict/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/addsict/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/addsict/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/addsict/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/addsict/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/addsict/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/addsict/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/addsict/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/addsict/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/addsict/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/addsict/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/addsict/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/addsict/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/addsict/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/addsict/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/addsict/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/addsict/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/addsict/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/addsict/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/addsict/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/addsict/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/addsict/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/addsict/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/addsict/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/addsict/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/addsict/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/addsict/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/addsict/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/addsict/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/addsict/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/addsict/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/addsict/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/addsict/Nand2Tetris/deployments", + "created_at": "2016-01-24T06:22:51Z", + "updated_at": "2016-01-24T06:27:03Z", + "pushed_at": "2016-01-24T12:47:38Z", + "git_url": "git://github.com/addsict/Nand2Tetris.git", + "ssh_url": "git@github.com:addsict/Nand2Tetris.git", + "clone_url": "https://github.com/addsict/Nand2Tetris.git", + "svn_url": "https://github.com/addsict/Nand2Tetris", + "homepage": null, + "size": 169, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 48831936, + "name": "nand2tetris", + "full_name": "tones111/nand2tetris", + "owner": { + "login": "tones111", + "id": 828656, + "avatar_url": "https://avatars.githubusercontent.com/u/828656?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tones111", + "html_url": "https://github.com/tones111", + "followers_url": "https://api.github.com/users/tones111/followers", + "following_url": "https://api.github.com/users/tones111/following{/other_user}", + "gists_url": "https://api.github.com/users/tones111/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tones111/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tones111/subscriptions", + "organizations_url": "https://api.github.com/users/tones111/orgs", + "repos_url": "https://api.github.com/users/tones111/repos", + "events_url": "https://api.github.com/users/tones111/events{/privacy}", + "received_events_url": "https://api.github.com/users/tones111/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tones111/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/tones111/nand2tetris", + "forks_url": "https://api.github.com/repos/tones111/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tones111/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tones111/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tones111/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tones111/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tones111/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tones111/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tones111/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tones111/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tones111/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tones111/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tones111/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tones111/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tones111/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tones111/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tones111/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tones111/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tones111/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tones111/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tones111/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tones111/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tones111/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tones111/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tones111/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tones111/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tones111/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tones111/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tones111/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tones111/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tones111/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tones111/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tones111/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tones111/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tones111/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tones111/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tones111/nand2tetris/deployments", + "created_at": "2015-12-31T03:46:03Z", + "updated_at": "2015-12-31T03:46:49Z", + "pushed_at": "2015-12-31T03:47:17Z", + "git_url": "git://github.com/tones111/nand2tetris.git", + "ssh_url": "git@github.com:tones111/nand2tetris.git", + "clone_url": "https://github.com/tones111/nand2tetris.git", + "svn_url": "https://github.com/tones111/nand2tetris", + "homepage": null, + "size": 520, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 48820565, + "name": "nand2tetris", + "full_name": "raymondethan/nand2tetris", + "owner": { + "login": "raymondethan", + "id": 5714523, + "avatar_url": "https://avatars.githubusercontent.com/u/5714523?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/raymondethan", + "html_url": "https://github.com/raymondethan", + "followers_url": "https://api.github.com/users/raymondethan/followers", + "following_url": "https://api.github.com/users/raymondethan/following{/other_user}", + "gists_url": "https://api.github.com/users/raymondethan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/raymondethan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/raymondethan/subscriptions", + "organizations_url": "https://api.github.com/users/raymondethan/orgs", + "repos_url": "https://api.github.com/users/raymondethan/repos", + "events_url": "https://api.github.com/users/raymondethan/events{/privacy}", + "received_events_url": "https://api.github.com/users/raymondethan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/raymondethan/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/raymondethan/nand2tetris", + "forks_url": "https://api.github.com/repos/raymondethan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/raymondethan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/raymondethan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/raymondethan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/raymondethan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/raymondethan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/raymondethan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/raymondethan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/raymondethan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/raymondethan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/raymondethan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/raymondethan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/raymondethan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/raymondethan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/raymondethan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/raymondethan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/raymondethan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/raymondethan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/raymondethan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/raymondethan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/raymondethan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/raymondethan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/raymondethan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/raymondethan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/raymondethan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/raymondethan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/raymondethan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/raymondethan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/raymondethan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/raymondethan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/raymondethan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/raymondethan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/raymondethan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/raymondethan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/raymondethan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/raymondethan/nand2tetris/deployments", + "created_at": "2015-12-30T21:42:24Z", + "updated_at": "2015-12-30T21:50:07Z", + "pushed_at": "2015-12-30T21:50:05Z", + "git_url": "git://github.com/raymondethan/nand2tetris.git", + "ssh_url": "git@github.com:raymondethan/nand2tetris.git", + "clone_url": "https://github.com/raymondethan/nand2tetris.git", + "svn_url": "https://github.com/raymondethan/nand2tetris", + "homepage": null, + "size": 535, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 37582867, + "name": "nand2tetris", + "full_name": "theapi/nand2tetris", + "owner": { + "login": "theapi", + "id": 2162420, + "avatar_url": "https://avatars.githubusercontent.com/u/2162420?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/theapi", + "html_url": "https://github.com/theapi", + "followers_url": "https://api.github.com/users/theapi/followers", + "following_url": "https://api.github.com/users/theapi/following{/other_user}", + "gists_url": "https://api.github.com/users/theapi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/theapi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/theapi/subscriptions", + "organizations_url": "https://api.github.com/users/theapi/orgs", + "repos_url": "https://api.github.com/users/theapi/repos", + "events_url": "https://api.github.com/users/theapi/events{/privacy}", + "received_events_url": "https://api.github.com/users/theapi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/theapi/nand2tetris", + "description": "http://www.nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/theapi/nand2tetris", + "forks_url": "https://api.github.com/repos/theapi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/theapi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/theapi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/theapi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/theapi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/theapi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/theapi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/theapi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/theapi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/theapi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/theapi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/theapi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/theapi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/theapi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/theapi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/theapi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/theapi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/theapi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/theapi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/theapi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/theapi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/theapi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/theapi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/theapi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/theapi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/theapi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/theapi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/theapi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/theapi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/theapi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/theapi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/theapi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/theapi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/theapi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/theapi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/theapi/nand2tetris/deployments", + "created_at": "2015-06-17T08:35:07Z", + "updated_at": "2016-01-20T09:28:58Z", + "pushed_at": "2016-01-26T14:09:49Z", + "git_url": "git://github.com/theapi/nand2tetris.git", + "ssh_url": "git@github.com:theapi/nand2tetris.git", + "clone_url": "https://github.com/theapi/nand2tetris.git", + "svn_url": "https://github.com/theapi/nand2tetris", + "homepage": null, + "size": 337, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 42762825, + "name": "nand2tetris", + "full_name": "youkidearitai/nand2tetris", + "owner": { + "login": "youkidearitai", + "id": 305368, + "avatar_url": "https://avatars.githubusercontent.com/u/305368?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/youkidearitai", + "html_url": "https://github.com/youkidearitai", + "followers_url": "https://api.github.com/users/youkidearitai/followers", + "following_url": "https://api.github.com/users/youkidearitai/following{/other_user}", + "gists_url": "https://api.github.com/users/youkidearitai/gists{/gist_id}", + "starred_url": "https://api.github.com/users/youkidearitai/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/youkidearitai/subscriptions", + "organizations_url": "https://api.github.com/users/youkidearitai/orgs", + "repos_url": "https://api.github.com/users/youkidearitai/repos", + "events_url": "https://api.github.com/users/youkidearitai/events{/privacy}", + "received_events_url": "https://api.github.com/users/youkidearitai/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/youkidearitai/nand2tetris", + "description": "nand2tetris.org / コンピュータシステムの理論と実装の解答", + "fork": false, + "url": "https://api.github.com/repos/youkidearitai/nand2tetris", + "forks_url": "https://api.github.com/repos/youkidearitai/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/youkidearitai/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/youkidearitai/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/youkidearitai/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/youkidearitai/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/youkidearitai/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/youkidearitai/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/youkidearitai/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/youkidearitai/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/youkidearitai/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/youkidearitai/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/youkidearitai/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/youkidearitai/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/youkidearitai/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/youkidearitai/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/youkidearitai/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/youkidearitai/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/youkidearitai/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/youkidearitai/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/youkidearitai/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/youkidearitai/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/youkidearitai/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/youkidearitai/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/youkidearitai/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/youkidearitai/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/youkidearitai/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/youkidearitai/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/youkidearitai/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/youkidearitai/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/youkidearitai/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/youkidearitai/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/youkidearitai/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/youkidearitai/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/youkidearitai/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/youkidearitai/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/youkidearitai/nand2tetris/deployments", + "created_at": "2015-09-19T06:39:43Z", + "updated_at": "2016-01-30T10:25:05Z", + "pushed_at": "2016-01-30T10:25:03Z", + "git_url": "git://github.com/youkidearitai/nand2tetris.git", + "ssh_url": "git@github.com:youkidearitai/nand2tetris.git", + "clone_url": "https://github.com/youkidearitai/nand2tetris.git", + "svn_url": "https://github.com/youkidearitai/nand2tetris", + "homepage": null, + "size": 126, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 49466232, + "name": "nand2tetris", + "full_name": "DrZoo/nand2tetris", + "owner": { + "login": "DrZoo", + "id": 9037345, + "avatar_url": "https://avatars.githubusercontent.com/u/9037345?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/DrZoo", + "html_url": "https://github.com/DrZoo", + "followers_url": "https://api.github.com/users/DrZoo/followers", + "following_url": "https://api.github.com/users/DrZoo/following{/other_user}", + "gists_url": "https://api.github.com/users/DrZoo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DrZoo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DrZoo/subscriptions", + "organizations_url": "https://api.github.com/users/DrZoo/orgs", + "repos_url": "https://api.github.com/users/DrZoo/repos", + "events_url": "https://api.github.com/users/DrZoo/events{/privacy}", + "received_events_url": "https://api.github.com/users/DrZoo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/DrZoo/nand2tetris", + "description": "nand2tetris project", + "fork": false, + "url": "https://api.github.com/repos/DrZoo/nand2tetris", + "forks_url": "https://api.github.com/repos/DrZoo/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/DrZoo/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/DrZoo/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/DrZoo/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/DrZoo/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/DrZoo/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/DrZoo/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/DrZoo/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/DrZoo/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/DrZoo/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/DrZoo/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/DrZoo/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/DrZoo/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/DrZoo/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/DrZoo/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/DrZoo/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/DrZoo/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/DrZoo/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/DrZoo/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/DrZoo/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/DrZoo/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/DrZoo/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/DrZoo/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/DrZoo/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/DrZoo/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/DrZoo/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/DrZoo/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/DrZoo/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/DrZoo/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/DrZoo/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/DrZoo/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/DrZoo/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/DrZoo/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/DrZoo/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/DrZoo/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/DrZoo/nand2tetris/deployments", + "created_at": "2016-01-12T01:28:57Z", + "updated_at": "2016-01-12T01:29:06Z", + "pushed_at": "2016-03-03T01:27:11Z", + "git_url": "git://github.com/DrZoo/nand2tetris.git", + "ssh_url": "git@github.com:DrZoo/nand2tetris.git", + "clone_url": "https://github.com/DrZoo/nand2tetris.git", + "svn_url": "https://github.com/DrZoo/nand2tetris", + "homepage": null, + "size": 551, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 49663310, + "name": "Nand2Tetris", + "full_name": "JRempel/Nand2Tetris", + "owner": { + "login": "JRempel", + "id": 16583409, + "avatar_url": "https://avatars.githubusercontent.com/u/16583409?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/JRempel", + "html_url": "https://github.com/JRempel", + "followers_url": "https://api.github.com/users/JRempel/followers", + "following_url": "https://api.github.com/users/JRempel/following{/other_user}", + "gists_url": "https://api.github.com/users/JRempel/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JRempel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JRempel/subscriptions", + "organizations_url": "https://api.github.com/users/JRempel/orgs", + "repos_url": "https://api.github.com/users/JRempel/repos", + "events_url": "https://api.github.com/users/JRempel/events{/privacy}", + "received_events_url": "https://api.github.com/users/JRempel/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/JRempel/Nand2Tetris", + "description": "My solutions for Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/JRempel/Nand2Tetris", + "forks_url": "https://api.github.com/repos/JRempel/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/JRempel/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/JRempel/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/JRempel/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/JRempel/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/JRempel/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/JRempel/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/JRempel/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/JRempel/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/JRempel/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/JRempel/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/JRempel/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/JRempel/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/JRempel/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/JRempel/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/JRempel/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/JRempel/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/JRempel/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/JRempel/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/JRempel/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/JRempel/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/JRempel/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/JRempel/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/JRempel/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/JRempel/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/JRempel/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/JRempel/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/JRempel/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/JRempel/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/JRempel/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/JRempel/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/JRempel/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/JRempel/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/JRempel/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/JRempel/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/JRempel/Nand2Tetris/deployments", + "created_at": "2016-01-14T17:31:48Z", + "updated_at": "2016-02-24T01:57:29Z", + "pushed_at": "2016-02-24T01:57:29Z", + "git_url": "git://github.com/JRempel/Nand2Tetris.git", + "ssh_url": "git@github.com:JRempel/Nand2Tetris.git", + "clone_url": "https://github.com/JRempel/Nand2Tetris.git", + "svn_url": "https://github.com/JRempel/Nand2Tetris", + "homepage": null, + "size": 12, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 52869798, + "name": "nand2tetris", + "full_name": "lpld/nand2tetris", + "owner": { + "login": "lpld", + "id": 995622, + "avatar_url": "https://avatars.githubusercontent.com/u/995622?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lpld", + "html_url": "https://github.com/lpld", + "followers_url": "https://api.github.com/users/lpld/followers", + "following_url": "https://api.github.com/users/lpld/following{/other_user}", + "gists_url": "https://api.github.com/users/lpld/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lpld/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lpld/subscriptions", + "organizations_url": "https://api.github.com/users/lpld/orgs", + "repos_url": "https://api.github.com/users/lpld/repos", + "events_url": "https://api.github.com/users/lpld/events{/privacy}", + "received_events_url": "https://api.github.com/users/lpld/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lpld/nand2tetris", + "description": "http://nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/lpld/nand2tetris", + "forks_url": "https://api.github.com/repos/lpld/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lpld/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lpld/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lpld/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lpld/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lpld/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lpld/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lpld/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lpld/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lpld/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lpld/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lpld/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lpld/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lpld/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lpld/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lpld/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lpld/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lpld/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lpld/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lpld/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lpld/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lpld/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lpld/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lpld/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lpld/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lpld/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lpld/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lpld/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lpld/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lpld/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lpld/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lpld/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lpld/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lpld/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lpld/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lpld/nand2tetris/deployments", + "created_at": "2016-03-01T10:49:41Z", + "updated_at": "2016-03-27T20:11:34Z", + "pushed_at": "2016-03-28T23:06:27Z", + "git_url": "git://github.com/lpld/nand2tetris.git", + "ssh_url": "git@github.com:lpld/nand2tetris.git", + "clone_url": "https://github.com/lpld/nand2tetris.git", + "svn_url": "https://github.com/lpld/nand2tetris", + "homepage": null, + "size": 90, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 53365604, + "name": "nand2tetris", + "full_name": "mdaisuke/nand2tetris", + "owner": { + "login": "mdaisuke", + "id": 122267, + "avatar_url": "https://avatars.githubusercontent.com/u/122267?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mdaisuke", + "html_url": "https://github.com/mdaisuke", + "followers_url": "https://api.github.com/users/mdaisuke/followers", + "following_url": "https://api.github.com/users/mdaisuke/following{/other_user}", + "gists_url": "https://api.github.com/users/mdaisuke/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mdaisuke/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mdaisuke/subscriptions", + "organizations_url": "https://api.github.com/users/mdaisuke/orgs", + "repos_url": "https://api.github.com/users/mdaisuke/repos", + "events_url": "https://api.github.com/users/mdaisuke/events{/privacy}", + "received_events_url": "https://api.github.com/users/mdaisuke/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mdaisuke/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/mdaisuke/nand2tetris", + "forks_url": "https://api.github.com/repos/mdaisuke/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mdaisuke/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mdaisuke/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mdaisuke/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mdaisuke/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mdaisuke/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mdaisuke/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mdaisuke/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mdaisuke/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mdaisuke/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mdaisuke/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mdaisuke/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mdaisuke/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mdaisuke/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mdaisuke/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mdaisuke/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mdaisuke/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mdaisuke/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mdaisuke/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mdaisuke/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mdaisuke/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mdaisuke/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mdaisuke/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mdaisuke/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mdaisuke/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mdaisuke/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mdaisuke/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mdaisuke/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mdaisuke/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mdaisuke/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mdaisuke/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mdaisuke/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mdaisuke/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mdaisuke/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mdaisuke/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mdaisuke/nand2tetris/deployments", + "created_at": "2016-03-07T23:03:35Z", + "updated_at": "2016-03-07T23:33:26Z", + "pushed_at": "2016-03-07T23:33:23Z", + "git_url": "git://github.com/mdaisuke/nand2tetris.git", + "ssh_url": "git@github.com:mdaisuke/nand2tetris.git", + "clone_url": "https://github.com/mdaisuke/nand2tetris.git", + "svn_url": "https://github.com/mdaisuke/nand2tetris", + "homepage": null, + "size": 1061, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 52034219, + "name": "nandToTetris", + "full_name": "seabjackson/nandToTetris", + "owner": { + "login": "seabjackson", + "id": 11398615, + "avatar_url": "https://avatars.githubusercontent.com/u/11398615?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/seabjackson", + "html_url": "https://github.com/seabjackson", + "followers_url": "https://api.github.com/users/seabjackson/followers", + "following_url": "https://api.github.com/users/seabjackson/following{/other_user}", + "gists_url": "https://api.github.com/users/seabjackson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/seabjackson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/seabjackson/subscriptions", + "organizations_url": "https://api.github.com/users/seabjackson/orgs", + "repos_url": "https://api.github.com/users/seabjackson/repos", + "events_url": "https://api.github.com/users/seabjackson/events{/privacy}", + "received_events_url": "https://api.github.com/users/seabjackson/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/seabjackson/nandToTetris", + "description": "Starting with primitive Nand gates I will construct a computer that can be programmed to even play computer games.", + "fork": false, + "url": "https://api.github.com/repos/seabjackson/nandToTetris", + "forks_url": "https://api.github.com/repos/seabjackson/nandToTetris/forks", + "keys_url": "https://api.github.com/repos/seabjackson/nandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/seabjackson/nandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/seabjackson/nandToTetris/teams", + "hooks_url": "https://api.github.com/repos/seabjackson/nandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/seabjackson/nandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/seabjackson/nandToTetris/events", + "assignees_url": "https://api.github.com/repos/seabjackson/nandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/seabjackson/nandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/seabjackson/nandToTetris/tags", + "blobs_url": "https://api.github.com/repos/seabjackson/nandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/seabjackson/nandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/seabjackson/nandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/seabjackson/nandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/seabjackson/nandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/seabjackson/nandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/seabjackson/nandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/seabjackson/nandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/seabjackson/nandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/seabjackson/nandToTetris/subscription", + "commits_url": "https://api.github.com/repos/seabjackson/nandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/seabjackson/nandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/seabjackson/nandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/seabjackson/nandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/seabjackson/nandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/seabjackson/nandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/seabjackson/nandToTetris/merges", + "archive_url": "https://api.github.com/repos/seabjackson/nandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/seabjackson/nandToTetris/downloads", + "issues_url": "https://api.github.com/repos/seabjackson/nandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/seabjackson/nandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/seabjackson/nandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/seabjackson/nandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/seabjackson/nandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/seabjackson/nandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/seabjackson/nandToTetris/deployments", + "created_at": "2016-02-18T19:51:20Z", + "updated_at": "2016-02-19T02:08:44Z", + "pushed_at": "2016-03-07T20:29:51Z", + "git_url": "git://github.com/seabjackson/nandToTetris.git", + "ssh_url": "git@github.com:seabjackson/nandToTetris.git", + "clone_url": "https://github.com/seabjackson/nandToTetris.git", + "svn_url": "https://github.com/seabjackson/nandToTetris", + "homepage": null, + "size": 514, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 54548569, + "name": "nand2tetris", + "full_name": "MakSim345/nand2tetris", + "owner": { + "login": "MakSim345", + "id": 2471397, + "avatar_url": "https://avatars.githubusercontent.com/u/2471397?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MakSim345", + "html_url": "https://github.com/MakSim345", + "followers_url": "https://api.github.com/users/MakSim345/followers", + "following_url": "https://api.github.com/users/MakSim345/following{/other_user}", + "gists_url": "https://api.github.com/users/MakSim345/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MakSim345/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MakSim345/subscriptions", + "organizations_url": "https://api.github.com/users/MakSim345/orgs", + "repos_url": "https://api.github.com/users/MakSim345/repos", + "events_url": "https://api.github.com/users/MakSim345/events{/privacy}", + "received_events_url": "https://api.github.com/users/MakSim345/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MakSim345/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/MakSim345/nand2tetris", + "forks_url": "https://api.github.com/repos/MakSim345/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/MakSim345/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MakSim345/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MakSim345/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/MakSim345/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/MakSim345/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/MakSim345/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/MakSim345/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/MakSim345/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/MakSim345/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/MakSim345/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MakSim345/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MakSim345/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MakSim345/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MakSim345/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MakSim345/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/MakSim345/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/MakSim345/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/MakSim345/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/MakSim345/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/MakSim345/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MakSim345/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MakSim345/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MakSim345/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MakSim345/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/MakSim345/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MakSim345/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/MakSim345/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MakSim345/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/MakSim345/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/MakSim345/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MakSim345/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MakSim345/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MakSim345/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/MakSim345/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/MakSim345/nand2tetris/deployments", + "created_at": "2016-03-23T09:50:32Z", + "updated_at": "2016-03-23T10:00:08Z", + "pushed_at": "2016-03-23T10:01:36Z", + "git_url": "git://github.com/MakSim345/nand2tetris.git", + "ssh_url": "git@github.com:MakSim345/nand2tetris.git", + "clone_url": "https://github.com/MakSim345/nand2tetris.git", + "svn_url": "https://github.com/MakSim345/nand2tetris", + "homepage": null, + "size": 190, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 53068598, + "name": "nand2tetris", + "full_name": "jfitzell/nand2tetris", + "owner": { + "login": "jfitzell", + "id": 2814934, + "avatar_url": "https://avatars.githubusercontent.com/u/2814934?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jfitzell", + "html_url": "https://github.com/jfitzell", + "followers_url": "https://api.github.com/users/jfitzell/followers", + "following_url": "https://api.github.com/users/jfitzell/following{/other_user}", + "gists_url": "https://api.github.com/users/jfitzell/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jfitzell/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jfitzell/subscriptions", + "organizations_url": "https://api.github.com/users/jfitzell/orgs", + "repos_url": "https://api.github.com/users/jfitzell/repos", + "events_url": "https://api.github.com/users/jfitzell/events{/privacy}", + "received_events_url": "https://api.github.com/users/jfitzell/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jfitzell/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jfitzell/nand2tetris", + "forks_url": "https://api.github.com/repos/jfitzell/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jfitzell/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jfitzell/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jfitzell/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jfitzell/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jfitzell/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jfitzell/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jfitzell/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jfitzell/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jfitzell/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jfitzell/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jfitzell/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jfitzell/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jfitzell/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jfitzell/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jfitzell/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jfitzell/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jfitzell/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jfitzell/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jfitzell/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jfitzell/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jfitzell/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jfitzell/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jfitzell/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jfitzell/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jfitzell/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jfitzell/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jfitzell/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jfitzell/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jfitzell/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jfitzell/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jfitzell/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jfitzell/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jfitzell/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jfitzell/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jfitzell/nand2tetris/deployments", + "created_at": "2016-03-03T17:13:48Z", + "updated_at": "2016-03-03T17:15:33Z", + "pushed_at": "2016-03-09T11:22:59Z", + "git_url": "git://github.com/jfitzell/nand2tetris.git", + "ssh_url": "git@github.com:jfitzell/nand2tetris.git", + "clone_url": "https://github.com/jfitzell/nand2tetris.git", + "svn_url": "https://github.com/jfitzell/nand2tetris", + "homepage": null, + "size": 173, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 52258088, + "name": "nand2tetris", + "full_name": "jbazalar/nand2tetris", + "owner": { + "login": "jbazalar", + "id": 3432440, + "avatar_url": "https://avatars.githubusercontent.com/u/3432440?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jbazalar", + "html_url": "https://github.com/jbazalar", + "followers_url": "https://api.github.com/users/jbazalar/followers", + "following_url": "https://api.github.com/users/jbazalar/following{/other_user}", + "gists_url": "https://api.github.com/users/jbazalar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jbazalar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jbazalar/subscriptions", + "organizations_url": "https://api.github.com/users/jbazalar/orgs", + "repos_url": "https://api.github.com/users/jbazalar/repos", + "events_url": "https://api.github.com/users/jbazalar/events{/privacy}", + "received_events_url": "https://api.github.com/users/jbazalar/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jbazalar/nand2tetris", + "description": "Work done for the nand2tetris course.", + "fork": false, + "url": "https://api.github.com/repos/jbazalar/nand2tetris", + "forks_url": "https://api.github.com/repos/jbazalar/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jbazalar/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jbazalar/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jbazalar/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jbazalar/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jbazalar/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jbazalar/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jbazalar/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jbazalar/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jbazalar/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jbazalar/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jbazalar/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jbazalar/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jbazalar/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jbazalar/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jbazalar/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jbazalar/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jbazalar/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jbazalar/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jbazalar/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jbazalar/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jbazalar/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jbazalar/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jbazalar/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jbazalar/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jbazalar/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jbazalar/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jbazalar/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jbazalar/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jbazalar/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jbazalar/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jbazalar/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jbazalar/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jbazalar/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jbazalar/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jbazalar/nand2tetris/deployments", + "created_at": "2016-02-22T08:20:26Z", + "updated_at": "2016-02-22T08:21:57Z", + "pushed_at": "2016-03-09T05:13:03Z", + "git_url": "git://github.com/jbazalar/nand2tetris.git", + "ssh_url": "git@github.com:jbazalar/nand2tetris.git", + "clone_url": "https://github.com/jbazalar/nand2tetris.git", + "svn_url": "https://github.com/jbazalar/nand2tetris", + "homepage": null, + "size": 508, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 53259745, + "name": "Nand2tetris", + "full_name": "talsagiv/Nand2tetris", + "owner": { + "login": "talsagiv", + "id": 15180556, + "avatar_url": "https://avatars.githubusercontent.com/u/15180556?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/talsagiv", + "html_url": "https://github.com/talsagiv", + "followers_url": "https://api.github.com/users/talsagiv/followers", + "following_url": "https://api.github.com/users/talsagiv/following{/other_user}", + "gists_url": "https://api.github.com/users/talsagiv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/talsagiv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/talsagiv/subscriptions", + "organizations_url": "https://api.github.com/users/talsagiv/orgs", + "repos_url": "https://api.github.com/users/talsagiv/repos", + "events_url": "https://api.github.com/users/talsagiv/events{/privacy}", + "received_events_url": "https://api.github.com/users/talsagiv/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/talsagiv/Nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/talsagiv/Nand2tetris", + "forks_url": "https://api.github.com/repos/talsagiv/Nand2tetris/forks", + "keys_url": "https://api.github.com/repos/talsagiv/Nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/talsagiv/Nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/talsagiv/Nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/talsagiv/Nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/talsagiv/Nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/talsagiv/Nand2tetris/events", + "assignees_url": "https://api.github.com/repos/talsagiv/Nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/talsagiv/Nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/talsagiv/Nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/talsagiv/Nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/talsagiv/Nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/talsagiv/Nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/talsagiv/Nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/talsagiv/Nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/talsagiv/Nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/talsagiv/Nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/talsagiv/Nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/talsagiv/Nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/talsagiv/Nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/talsagiv/Nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/talsagiv/Nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/talsagiv/Nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/talsagiv/Nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/talsagiv/Nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/talsagiv/Nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/talsagiv/Nand2tetris/merges", + "archive_url": "https://api.github.com/repos/talsagiv/Nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/talsagiv/Nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/talsagiv/Nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/talsagiv/Nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/talsagiv/Nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/talsagiv/Nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/talsagiv/Nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/talsagiv/Nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/talsagiv/Nand2tetris/deployments", + "created_at": "2016-03-06T14:46:54Z", + "updated_at": "2016-03-09T14:15:38Z", + "pushed_at": "2016-03-09T15:34:01Z", + "git_url": "git://github.com/talsagiv/Nand2tetris.git", + "ssh_url": "git@github.com:talsagiv/Nand2tetris.git", + "clone_url": "https://github.com/talsagiv/Nand2tetris.git", + "svn_url": "https://github.com/talsagiv/Nand2tetris", + "homepage": null, + "size": 514, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 50848986, + "name": "Nand2Tetris", + "full_name": "saikumarm4/Nand2Tetris", + "owner": { + "login": "saikumarm4", + "id": 8482002, + "avatar_url": "https://avatars.githubusercontent.com/u/8482002?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/saikumarm4", + "html_url": "https://github.com/saikumarm4", + "followers_url": "https://api.github.com/users/saikumarm4/followers", + "following_url": "https://api.github.com/users/saikumarm4/following{/other_user}", + "gists_url": "https://api.github.com/users/saikumarm4/gists{/gist_id}", + "starred_url": "https://api.github.com/users/saikumarm4/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/saikumarm4/subscriptions", + "organizations_url": "https://api.github.com/users/saikumarm4/orgs", + "repos_url": "https://api.github.com/users/saikumarm4/repos", + "events_url": "https://api.github.com/users/saikumarm4/events{/privacy}", + "received_events_url": "https://api.github.com/users/saikumarm4/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/saikumarm4/Nand2Tetris", + "description": "This repository consists of Implementation for Nand2Tetris assignments", + "fork": false, + "url": "https://api.github.com/repos/saikumarm4/Nand2Tetris", + "forks_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/saikumarm4/Nand2Tetris/deployments", + "created_at": "2016-02-01T15:34:28Z", + "updated_at": "2016-02-21T05:42:03Z", + "pushed_at": "2016-03-30T02:19:17Z", + "git_url": "git://github.com/saikumarm4/Nand2Tetris.git", + "ssh_url": "git@github.com:saikumarm4/Nand2Tetris.git", + "clone_url": "https://github.com/saikumarm4/Nand2Tetris.git", + "svn_url": "https://github.com/saikumarm4/Nand2Tetris", + "homepage": null, + "size": 152, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 47659906, + "name": "nand2tetris_projects", + "full_name": "ccckmit/nand2tetris_projects", + "owner": { + "login": "ccckmit", + "id": 1188390, + "avatar_url": "https://avatars.githubusercontent.com/u/1188390?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ccckmit", + "html_url": "https://github.com/ccckmit", + "followers_url": "https://api.github.com/users/ccckmit/followers", + "following_url": "https://api.github.com/users/ccckmit/following{/other_user}", + "gists_url": "https://api.github.com/users/ccckmit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ccckmit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ccckmit/subscriptions", + "organizations_url": "https://api.github.com/users/ccckmit/orgs", + "repos_url": "https://api.github.com/users/ccckmit/repos", + "events_url": "https://api.github.com/users/ccckmit/events{/privacy}", + "received_events_url": "https://api.github.com/users/ccckmit/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ccckmit/nand2tetris_projects", + "description": "my nand2tetris homework ", + "fork": false, + "url": "https://api.github.com/repos/ccckmit/nand2tetris_projects", + "forks_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/forks", + "keys_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/teams", + "hooks_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/hooks", + "issue_events_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/events", + "assignees_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/tags", + "blobs_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/languages", + "stargazers_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/stargazers", + "contributors_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/contributors", + "subscribers_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/subscribers", + "subscription_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/subscription", + "commits_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/merges", + "archive_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/downloads", + "issues_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/labels{/name}", + "releases_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/ccckmit/nand2tetris_projects/deployments", + "created_at": "2015-12-09T01:11:22Z", + "updated_at": "2015-12-09T02:12:57Z", + "pushed_at": "2015-12-09T02:12:56Z", + "git_url": "git://github.com/ccckmit/nand2tetris_projects.git", + "ssh_url": "git@github.com:ccckmit/nand2tetris_projects.git", + "clone_url": "https://github.com/ccckmit/nand2tetris_projects.git", + "svn_url": "https://github.com/ccckmit/nand2tetris_projects", + "homepage": null, + "size": 266, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 45806353, + "name": "nand2tetris", + "full_name": "erikchau/nand2tetris", + "owner": { + "login": "erikchau", + "id": 6894634, + "avatar_url": "https://avatars.githubusercontent.com/u/6894634?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/erikchau", + "html_url": "https://github.com/erikchau", + "followers_url": "https://api.github.com/users/erikchau/followers", + "following_url": "https://api.github.com/users/erikchau/following{/other_user}", + "gists_url": "https://api.github.com/users/erikchau/gists{/gist_id}", + "starred_url": "https://api.github.com/users/erikchau/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/erikchau/subscriptions", + "organizations_url": "https://api.github.com/users/erikchau/orgs", + "repos_url": "https://api.github.com/users/erikchau/repos", + "events_url": "https://api.github.com/users/erikchau/events{/privacy}", + "received_events_url": "https://api.github.com/users/erikchau/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/erikchau/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/erikchau/nand2tetris", + "forks_url": "https://api.github.com/repos/erikchau/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/erikchau/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/erikchau/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/erikchau/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/erikchau/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/erikchau/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/erikchau/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/erikchau/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/erikchau/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/erikchau/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/erikchau/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/erikchau/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/erikchau/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/erikchau/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/erikchau/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/erikchau/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/erikchau/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/erikchau/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/erikchau/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/erikchau/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/erikchau/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/erikchau/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/erikchau/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/erikchau/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/erikchau/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/erikchau/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/erikchau/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/erikchau/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/erikchau/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/erikchau/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/erikchau/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/erikchau/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/erikchau/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/erikchau/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/erikchau/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/erikchau/nand2tetris/deployments", + "created_at": "2015-11-09T00:45:20Z", + "updated_at": "2015-11-09T01:00:01Z", + "pushed_at": "2015-11-09T09:51:20Z", + "git_url": "git://github.com/erikchau/nand2tetris.git", + "ssh_url": "git@github.com:erikchau/nand2tetris.git", + "clone_url": "https://github.com/erikchau/nand2tetris.git", + "svn_url": "https://github.com/erikchau/nand2tetris", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 45976393, + "name": "nand2tetris", + "full_name": "r4ghu/nand2tetris", + "owner": { + "login": "r4ghu", + "id": 5736976, + "avatar_url": "https://avatars.githubusercontent.com/u/5736976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/r4ghu", + "html_url": "https://github.com/r4ghu", + "followers_url": "https://api.github.com/users/r4ghu/followers", + "following_url": "https://api.github.com/users/r4ghu/following{/other_user}", + "gists_url": "https://api.github.com/users/r4ghu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/r4ghu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/r4ghu/subscriptions", + "organizations_url": "https://api.github.com/users/r4ghu/orgs", + "repos_url": "https://api.github.com/users/r4ghu/repos", + "events_url": "https://api.github.com/users/r4ghu/events{/privacy}", + "received_events_url": "https://api.github.com/users/r4ghu/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/r4ghu/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/r4ghu/nand2tetris", + "forks_url": "https://api.github.com/repos/r4ghu/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/r4ghu/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/r4ghu/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/r4ghu/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/r4ghu/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/r4ghu/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/r4ghu/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/r4ghu/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/r4ghu/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/r4ghu/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/r4ghu/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/r4ghu/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/r4ghu/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/r4ghu/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/r4ghu/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/r4ghu/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/r4ghu/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/r4ghu/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/r4ghu/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/r4ghu/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/r4ghu/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/r4ghu/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/r4ghu/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/r4ghu/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/r4ghu/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/r4ghu/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/r4ghu/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/r4ghu/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/r4ghu/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/r4ghu/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/r4ghu/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/r4ghu/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/r4ghu/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/r4ghu/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/r4ghu/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/r4ghu/nand2tetris/deployments", + "created_at": "2015-11-11T10:57:19Z", + "updated_at": "2015-11-11T10:57:32Z", + "pushed_at": "2015-11-11T10:57:30Z", + "git_url": "git://github.com/r4ghu/nand2tetris.git", + "ssh_url": "git@github.com:r4ghu/nand2tetris.git", + "clone_url": "https://github.com/r4ghu/nand2tetris.git", + "svn_url": "https://github.com/r4ghu/nand2tetris", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 46046727, + "name": "nand2tetris", + "full_name": "devonestes/nand2tetris", + "owner": { + "login": "devonestes", + "id": 8422484, + "avatar_url": "https://avatars.githubusercontent.com/u/8422484?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/devonestes", + "html_url": "https://github.com/devonestes", + "followers_url": "https://api.github.com/users/devonestes/followers", + "following_url": "https://api.github.com/users/devonestes/following{/other_user}", + "gists_url": "https://api.github.com/users/devonestes/gists{/gist_id}", + "starred_url": "https://api.github.com/users/devonestes/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/devonestes/subscriptions", + "organizations_url": "https://api.github.com/users/devonestes/orgs", + "repos_url": "https://api.github.com/users/devonestes/repos", + "events_url": "https://api.github.com/users/devonestes/events{/privacy}", + "received_events_url": "https://api.github.com/users/devonestes/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/devonestes/nand2tetris", + "description": "My code for working through the nand2tetris course on Coursera", + "fork": false, + "url": "https://api.github.com/repos/devonestes/nand2tetris", + "forks_url": "https://api.github.com/repos/devonestes/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/devonestes/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/devonestes/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/devonestes/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/devonestes/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/devonestes/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/devonestes/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/devonestes/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/devonestes/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/devonestes/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/devonestes/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/devonestes/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/devonestes/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/devonestes/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/devonestes/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/devonestes/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/devonestes/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/devonestes/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/devonestes/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/devonestes/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/devonestes/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/devonestes/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/devonestes/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/devonestes/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/devonestes/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/devonestes/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/devonestes/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/devonestes/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/devonestes/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/devonestes/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/devonestes/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/devonestes/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/devonestes/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/devonestes/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/devonestes/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/devonestes/nand2tetris/deployments", + "created_at": "2015-11-12T10:48:59Z", + "updated_at": "2015-11-12T10:49:31Z", + "pushed_at": "2015-11-20T18:48:04Z", + "git_url": "git://github.com/devonestes/nand2tetris.git", + "ssh_url": "git@github.com:devonestes/nand2tetris.git", + "clone_url": "https://github.com/devonestes/nand2tetris.git", + "svn_url": "https://github.com/devonestes/nand2tetris", + "homepage": null, + "size": 525, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 48088451, + "name": "nand2tetris", + "full_name": "lesniakbj/nand2tetris", + "owner": { + "login": "lesniakbj", + "id": 4515077, + "avatar_url": "https://avatars.githubusercontent.com/u/4515077?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lesniakbj", + "html_url": "https://github.com/lesniakbj", + "followers_url": "https://api.github.com/users/lesniakbj/followers", + "following_url": "https://api.github.com/users/lesniakbj/following{/other_user}", + "gists_url": "https://api.github.com/users/lesniakbj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lesniakbj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lesniakbj/subscriptions", + "organizations_url": "https://api.github.com/users/lesniakbj/orgs", + "repos_url": "https://api.github.com/users/lesniakbj/repos", + "events_url": "https://api.github.com/users/lesniakbj/events{/privacy}", + "received_events_url": "https://api.github.com/users/lesniakbj/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lesniakbj/nand2tetris", + "description": "Work area for the nand2tetris series", + "fork": false, + "url": "https://api.github.com/repos/lesniakbj/nand2tetris", + "forks_url": "https://api.github.com/repos/lesniakbj/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lesniakbj/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lesniakbj/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lesniakbj/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lesniakbj/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lesniakbj/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lesniakbj/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lesniakbj/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lesniakbj/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lesniakbj/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lesniakbj/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lesniakbj/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lesniakbj/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lesniakbj/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lesniakbj/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lesniakbj/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lesniakbj/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lesniakbj/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lesniakbj/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lesniakbj/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lesniakbj/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lesniakbj/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lesniakbj/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lesniakbj/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lesniakbj/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lesniakbj/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lesniakbj/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lesniakbj/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lesniakbj/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lesniakbj/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lesniakbj/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lesniakbj/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lesniakbj/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lesniakbj/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lesniakbj/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lesniakbj/nand2tetris/deployments", + "created_at": "2015-12-16T04:59:14Z", + "updated_at": "2015-12-16T05:07:49Z", + "pushed_at": "2015-12-16T05:41:36Z", + "git_url": "git://github.com/lesniakbj/nand2tetris.git", + "ssh_url": "git@github.com:lesniakbj/nand2tetris.git", + "clone_url": "https://github.com/lesniakbj/nand2tetris.git", + "svn_url": "https://github.com/lesniakbj/nand2tetris", + "homepage": null, + "size": 529, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 52823486, + "name": "nand2tetris", + "full_name": "hderms/nand2tetris", + "owner": { + "login": "hderms", + "id": 833575, + "avatar_url": "https://avatars.githubusercontent.com/u/833575?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hderms", + "html_url": "https://github.com/hderms", + "followers_url": "https://api.github.com/users/hderms/followers", + "following_url": "https://api.github.com/users/hderms/following{/other_user}", + "gists_url": "https://api.github.com/users/hderms/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hderms/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hderms/subscriptions", + "organizations_url": "https://api.github.com/users/hderms/orgs", + "repos_url": "https://api.github.com/users/hderms/repos", + "events_url": "https://api.github.com/users/hderms/events{/privacy}", + "received_events_url": "https://api.github.com/users/hderms/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hderms/nand2tetris", + "description": "Exercises from the book Nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/hderms/nand2tetris", + "forks_url": "https://api.github.com/repos/hderms/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/hderms/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hderms/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hderms/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/hderms/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/hderms/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/hderms/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/hderms/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/hderms/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/hderms/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/hderms/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hderms/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hderms/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hderms/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hderms/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hderms/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/hderms/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/hderms/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/hderms/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/hderms/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/hderms/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hderms/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hderms/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hderms/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hderms/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/hderms/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hderms/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/hderms/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hderms/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/hderms/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/hderms/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hderms/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hderms/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hderms/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/hderms/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/hderms/nand2tetris/deployments", + "created_at": "2016-02-29T20:46:26Z", + "updated_at": "2016-02-29T20:46:40Z", + "pushed_at": "2016-02-29T20:50:56Z", + "git_url": "git://github.com/hderms/nand2tetris.git", + "ssh_url": "git@github.com:hderms/nand2tetris.git", + "clone_url": "https://github.com/hderms/nand2tetris.git", + "svn_url": "https://github.com/hderms/nand2tetris", + "homepage": null, + "size": 152, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 50708093, + "name": "Nand2TetrisHDL", + "full_name": "Mons1Oerjan/Nand2TetrisHDL", + "owner": { + "login": "Mons1Oerjan", + "id": 16712579, + "avatar_url": "https://avatars.githubusercontent.com/u/16712579?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Mons1Oerjan", + "html_url": "https://github.com/Mons1Oerjan", + "followers_url": "https://api.github.com/users/Mons1Oerjan/followers", + "following_url": "https://api.github.com/users/Mons1Oerjan/following{/other_user}", + "gists_url": "https://api.github.com/users/Mons1Oerjan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mons1Oerjan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mons1Oerjan/subscriptions", + "organizations_url": "https://api.github.com/users/Mons1Oerjan/orgs", + "repos_url": "https://api.github.com/users/Mons1Oerjan/repos", + "events_url": "https://api.github.com/users/Mons1Oerjan/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mons1Oerjan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Mons1Oerjan/Nand2TetrisHDL", + "description": "Assembly - Logic gates in Hardware Description Language ", + "fork": false, + "url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL", + "forks_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/forks", + "keys_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/teams", + "hooks_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/hooks", + "issue_events_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/issues/events{/number}", + "events_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/events", + "assignees_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/assignees{/user}", + "branches_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/branches{/branch}", + "tags_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/tags", + "blobs_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/languages", + "stargazers_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/stargazers", + "contributors_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/contributors", + "subscribers_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/subscribers", + "subscription_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/subscription", + "commits_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/contents/{+path}", + "compare_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/merges", + "archive_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/downloads", + "issues_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/issues{/number}", + "pulls_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/labels{/name}", + "releases_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/releases{/id}", + "deployments_url": "https://api.github.com/repos/Mons1Oerjan/Nand2TetrisHDL/deployments", + "created_at": "2016-01-30T04:02:11Z", + "updated_at": "2016-02-29T15:01:53Z", + "pushed_at": "2016-02-29T15:01:53Z", + "git_url": "git://github.com/Mons1Oerjan/Nand2TetrisHDL.git", + "ssh_url": "git@github.com:Mons1Oerjan/Nand2TetrisHDL.git", + "clone_url": "https://github.com/Mons1Oerjan/Nand2TetrisHDL.git", + "svn_url": "https://github.com/Mons1Oerjan/Nand2TetrisHDL", + "homepage": null, + "size": 12, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 50324190, + "name": "nand2tetris", + "full_name": "kradical/nand2tetris", + "owner": { + "login": "kradical", + "id": 9980985, + "avatar_url": "https://avatars.githubusercontent.com/u/9980985?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kradical", + "html_url": "https://github.com/kradical", + "followers_url": "https://api.github.com/users/kradical/followers", + "following_url": "https://api.github.com/users/kradical/following{/other_user}", + "gists_url": "https://api.github.com/users/kradical/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kradical/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kradical/subscriptions", + "organizations_url": "https://api.github.com/users/kradical/orgs", + "repos_url": "https://api.github.com/users/kradical/repos", + "events_url": "https://api.github.com/users/kradical/events{/privacy}", + "received_events_url": "https://api.github.com/users/kradical/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kradical/nand2tetris", + "description": "Building a computer from first principles.", + "fork": false, + "url": "https://api.github.com/repos/kradical/nand2tetris", + "forks_url": "https://api.github.com/repos/kradical/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kradical/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kradical/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kradical/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kradical/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kradical/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kradical/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kradical/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kradical/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kradical/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kradical/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kradical/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kradical/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kradical/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kradical/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kradical/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kradical/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kradical/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kradical/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kradical/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kradical/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kradical/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kradical/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kradical/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kradical/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kradical/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kradical/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kradical/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kradical/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kradical/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kradical/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kradical/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kradical/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kradical/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kradical/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kradical/nand2tetris/deployments", + "created_at": "2016-01-25T03:42:54Z", + "updated_at": "2016-01-26T04:49:49Z", + "pushed_at": "2016-03-07T07:30:56Z", + "git_url": "git://github.com/kradical/nand2tetris.git", + "ssh_url": "git@github.com:kradical/nand2tetris.git", + "clone_url": "https://github.com/kradical/nand2tetris.git", + "svn_url": "https://github.com/kradical/nand2tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 163, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 55089474, + "name": "nand2tetris", + "full_name": "snarisi/nand2tetris", + "owner": { + "login": "snarisi", + "id": 12989566, + "avatar_url": "https://avatars.githubusercontent.com/u/12989566?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/snarisi", + "html_url": "https://github.com/snarisi", + "followers_url": "https://api.github.com/users/snarisi/followers", + "following_url": "https://api.github.com/users/snarisi/following{/other_user}", + "gists_url": "https://api.github.com/users/snarisi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/snarisi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/snarisi/subscriptions", + "organizations_url": "https://api.github.com/users/snarisi/orgs", + "repos_url": "https://api.github.com/users/snarisi/repos", + "events_url": "https://api.github.com/users/snarisi/events{/privacy}", + "received_events_url": "https://api.github.com/users/snarisi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/snarisi/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/snarisi/nand2tetris", + "forks_url": "https://api.github.com/repos/snarisi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/snarisi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/snarisi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/snarisi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/snarisi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/snarisi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/snarisi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/snarisi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/snarisi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/snarisi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/snarisi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/snarisi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/snarisi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/snarisi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/snarisi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/snarisi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/snarisi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/snarisi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/snarisi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/snarisi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/snarisi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/snarisi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/snarisi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/snarisi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/snarisi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/snarisi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/snarisi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/snarisi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/snarisi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/snarisi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/snarisi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/snarisi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/snarisi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/snarisi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/snarisi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/snarisi/nand2tetris/deployments", + "created_at": "2016-03-30T19:00:14Z", + "updated_at": "2016-03-30T19:03:32Z", + "pushed_at": "2016-04-04T19:23:51Z", + "git_url": "git://github.com/snarisi/nand2tetris.git", + "ssh_url": "git@github.com:snarisi/nand2tetris.git", + "clone_url": "https://github.com/snarisi/nand2tetris.git", + "svn_url": "https://github.com/snarisi/nand2tetris", + "homepage": null, + "size": 522, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 55754400, + "name": "nand2tetris", + "full_name": "ChapmanSnowden/nand2tetris", + "owner": { + "login": "ChapmanSnowden", + "id": 1605798, + "avatar_url": "https://avatars.githubusercontent.com/u/1605798?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ChapmanSnowden", + "html_url": "https://github.com/ChapmanSnowden", + "followers_url": "https://api.github.com/users/ChapmanSnowden/followers", + "following_url": "https://api.github.com/users/ChapmanSnowden/following{/other_user}", + "gists_url": "https://api.github.com/users/ChapmanSnowden/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ChapmanSnowden/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ChapmanSnowden/subscriptions", + "organizations_url": "https://api.github.com/users/ChapmanSnowden/orgs", + "repos_url": "https://api.github.com/users/ChapmanSnowden/repos", + "events_url": "https://api.github.com/users/ChapmanSnowden/events{/privacy}", + "received_events_url": "https://api.github.com/users/ChapmanSnowden/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ChapmanSnowden/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris", + "forks_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ChapmanSnowden/nand2tetris/deployments", + "created_at": "2016-04-08T06:03:03Z", + "updated_at": "2016-04-08T06:16:07Z", + "pushed_at": "2016-04-08T06:18:30Z", + "git_url": "git://github.com/ChapmanSnowden/nand2tetris.git", + "ssh_url": "git@github.com:ChapmanSnowden/nand2tetris.git", + "clone_url": "https://github.com/ChapmanSnowden/nand2tetris.git", + "svn_url": "https://github.com/ChapmanSnowden/nand2tetris", + "homepage": null, + "size": 166, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 56316254, + "name": "nand2tetris", + "full_name": "TomShacham/nand2tetris", + "owner": { + "login": "TomShacham", + "id": 5289332, + "avatar_url": "https://avatars.githubusercontent.com/u/5289332?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/TomShacham", + "html_url": "https://github.com/TomShacham", + "followers_url": "https://api.github.com/users/TomShacham/followers", + "following_url": "https://api.github.com/users/TomShacham/following{/other_user}", + "gists_url": "https://api.github.com/users/TomShacham/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TomShacham/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TomShacham/subscriptions", + "organizations_url": "https://api.github.com/users/TomShacham/orgs", + "repos_url": "https://api.github.com/users/TomShacham/repos", + "events_url": "https://api.github.com/users/TomShacham/events{/privacy}", + "received_events_url": "https://api.github.com/users/TomShacham/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/TomShacham/nand2tetris", + "description": "following nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/TomShacham/nand2tetris", + "forks_url": "https://api.github.com/repos/TomShacham/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/TomShacham/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/TomShacham/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/TomShacham/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/TomShacham/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/TomShacham/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/TomShacham/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/TomShacham/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/TomShacham/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/TomShacham/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/TomShacham/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/TomShacham/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/TomShacham/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/TomShacham/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/TomShacham/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/TomShacham/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/TomShacham/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/TomShacham/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/TomShacham/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/TomShacham/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/TomShacham/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/TomShacham/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/TomShacham/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/TomShacham/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/TomShacham/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/TomShacham/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/TomShacham/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/TomShacham/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/TomShacham/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/TomShacham/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/TomShacham/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/TomShacham/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/TomShacham/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/TomShacham/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/TomShacham/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/TomShacham/nand2tetris/deployments", + "created_at": "2016-04-15T11:48:31Z", + "updated_at": "2016-04-15T23:10:33Z", + "pushed_at": "2016-04-15T18:50:12Z", + "git_url": "git://github.com/TomShacham/nand2tetris.git", + "ssh_url": "git@github.com:TomShacham/nand2tetris.git", + "clone_url": "https://github.com/TomShacham/nand2tetris.git", + "svn_url": "https://github.com/TomShacham/nand2tetris", + "homepage": "", + "size": 32, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 56611135, + "name": "nand_to_tetris", + "full_name": "kmagida110/nand_to_tetris", + "owner": { + "login": "kmagida110", + "id": 11461531, + "avatar_url": "https://avatars.githubusercontent.com/u/11461531?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kmagida110", + "html_url": "https://github.com/kmagida110", + "followers_url": "https://api.github.com/users/kmagida110/followers", + "following_url": "https://api.github.com/users/kmagida110/following{/other_user}", + "gists_url": "https://api.github.com/users/kmagida110/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kmagida110/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kmagida110/subscriptions", + "organizations_url": "https://api.github.com/users/kmagida110/orgs", + "repos_url": "https://api.github.com/users/kmagida110/repos", + "events_url": "https://api.github.com/users/kmagida110/events{/privacy}", + "received_events_url": "https://api.github.com/users/kmagida110/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kmagida110/nand_to_tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/kmagida110/nand_to_tetris", + "forks_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/forks", + "keys_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/teams", + "hooks_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/events", + "assignees_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/tags", + "blobs_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/languages", + "stargazers_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/subscription", + "commits_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/merges", + "archive_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/downloads", + "issues_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kmagida110/nand_to_tetris/deployments", + "created_at": "2016-04-19T15:56:29Z", + "updated_at": "2016-04-19T15:59:40Z", + "pushed_at": "2016-04-19T15:59:38Z", + "git_url": "git://github.com/kmagida110/nand_to_tetris.git", + "ssh_url": "git@github.com:kmagida110/nand_to_tetris.git", + "clone_url": "https://github.com/kmagida110/nand_to_tetris.git", + "svn_url": "https://github.com/kmagida110/nand_to_tetris", + "homepage": null, + "size": 564, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 54682229, + "name": "nand2tetris", + "full_name": "gkaffka/nand2tetris", + "owner": { + "login": "gkaffka", + "id": 7598540, + "avatar_url": "https://avatars.githubusercontent.com/u/7598540?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gkaffka", + "html_url": "https://github.com/gkaffka", + "followers_url": "https://api.github.com/users/gkaffka/followers", + "following_url": "https://api.github.com/users/gkaffka/following{/other_user}", + "gists_url": "https://api.github.com/users/gkaffka/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gkaffka/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gkaffka/subscriptions", + "organizations_url": "https://api.github.com/users/gkaffka/orgs", + "repos_url": "https://api.github.com/users/gkaffka/repos", + "events_url": "https://api.github.com/users/gkaffka/events{/privacy}", + "received_events_url": "https://api.github.com/users/gkaffka/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gkaffka/nand2tetris", + "description": "Projects for the nand2Tetris course", + "fork": false, + "url": "https://api.github.com/repos/gkaffka/nand2tetris", + "forks_url": "https://api.github.com/repos/gkaffka/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/gkaffka/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gkaffka/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gkaffka/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/gkaffka/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/gkaffka/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gkaffka/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/gkaffka/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gkaffka/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gkaffka/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/gkaffka/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gkaffka/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gkaffka/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gkaffka/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gkaffka/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gkaffka/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/gkaffka/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/gkaffka/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/gkaffka/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/gkaffka/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/gkaffka/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gkaffka/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gkaffka/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gkaffka/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gkaffka/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gkaffka/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gkaffka/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/gkaffka/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gkaffka/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/gkaffka/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gkaffka/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gkaffka/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gkaffka/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gkaffka/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gkaffka/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gkaffka/nand2tetris/deployments", + "created_at": "2016-03-25T00:06:41Z", + "updated_at": "2016-04-22T01:25:16Z", + "pushed_at": "2016-04-22T01:25:15Z", + "git_url": "git://github.com/gkaffka/nand2tetris.git", + "ssh_url": "git@github.com:gkaffka/nand2tetris.git", + "clone_url": "https://github.com/gkaffka/nand2tetris.git", + "svn_url": "https://github.com/gkaffka/nand2tetris", + "homepage": null, + "size": 71, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 59449711, + "name": "nand2tetris", + "full_name": "programmerMOT/nand2tetris", + "owner": { + "login": "programmerMOT", + "id": 2757205, + "avatar_url": "https://avatars.githubusercontent.com/u/2757205?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/programmerMOT", + "html_url": "https://github.com/programmerMOT", + "followers_url": "https://api.github.com/users/programmerMOT/followers", + "following_url": "https://api.github.com/users/programmerMOT/following{/other_user}", + "gists_url": "https://api.github.com/users/programmerMOT/gists{/gist_id}", + "starred_url": "https://api.github.com/users/programmerMOT/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/programmerMOT/subscriptions", + "organizations_url": "https://api.github.com/users/programmerMOT/orgs", + "repos_url": "https://api.github.com/users/programmerMOT/repos", + "events_url": "https://api.github.com/users/programmerMOT/events{/privacy}", + "received_events_url": "https://api.github.com/users/programmerMOT/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/programmerMOT/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/programmerMOT/nand2tetris", + "forks_url": "https://api.github.com/repos/programmerMOT/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/programmerMOT/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/programmerMOT/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/programmerMOT/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/programmerMOT/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/programmerMOT/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/programmerMOT/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/programmerMOT/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/programmerMOT/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/programmerMOT/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/programmerMOT/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/programmerMOT/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/programmerMOT/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/programmerMOT/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/programmerMOT/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/programmerMOT/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/programmerMOT/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/programmerMOT/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/programmerMOT/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/programmerMOT/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/programmerMOT/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/programmerMOT/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/programmerMOT/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/programmerMOT/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/programmerMOT/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/programmerMOT/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/programmerMOT/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/programmerMOT/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/programmerMOT/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/programmerMOT/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/programmerMOT/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/programmerMOT/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/programmerMOT/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/programmerMOT/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/programmerMOT/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/programmerMOT/nand2tetris/deployments", + "created_at": "2016-05-23T03:33:26Z", + "updated_at": "2016-05-23T03:33:47Z", + "pushed_at": "2016-05-24T14:43:49Z", + "git_url": "git://github.com/programmerMOT/nand2tetris.git", + "ssh_url": "git@github.com:programmerMOT/nand2tetris.git", + "clone_url": "https://github.com/programmerMOT/nand2tetris.git", + "svn_url": "https://github.com/programmerMOT/nand2tetris", + "homepage": null, + "size": 1768, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 56863228, + "name": "ossu_nand2tetris", + "full_name": "brooksgarrett/ossu_nand2tetris", + "owner": { + "login": "brooksgarrett", + "id": 158907, + "avatar_url": "https://avatars.githubusercontent.com/u/158907?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/brooksgarrett", + "html_url": "https://github.com/brooksgarrett", + "followers_url": "https://api.github.com/users/brooksgarrett/followers", + "following_url": "https://api.github.com/users/brooksgarrett/following{/other_user}", + "gists_url": "https://api.github.com/users/brooksgarrett/gists{/gist_id}", + "starred_url": "https://api.github.com/users/brooksgarrett/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/brooksgarrett/subscriptions", + "organizations_url": "https://api.github.com/users/brooksgarrett/orgs", + "repos_url": "https://api.github.com/users/brooksgarrett/repos", + "events_url": "https://api.github.com/users/brooksgarrett/events{/privacy}", + "received_events_url": "https://api.github.com/users/brooksgarrett/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/brooksgarrett/ossu_nand2tetris", + "description": "https://www.coursera.org/learn/build-a-computer", + "fork": false, + "url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris", + "forks_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/forks", + "keys_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/events", + "assignees_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/merges", + "archive_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/brooksgarrett/ossu_nand2tetris/deployments", + "created_at": "2016-04-22T14:55:29Z", + "updated_at": "2016-04-28T20:20:29Z", + "pushed_at": "2016-04-29T16:09:47Z", + "git_url": "git://github.com/brooksgarrett/ossu_nand2tetris.git", + "ssh_url": "git@github.com:brooksgarrett/ossu_nand2tetris.git", + "clone_url": "https://github.com/brooksgarrett/ossu_nand2tetris.git", + "svn_url": "https://github.com/brooksgarrett/ossu_nand2tetris", + "homepage": null, + "size": 155, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 55832788, + "name": "Nand2Tetris", + "full_name": "ubufed/Nand2Tetris", + "owner": { + "login": "ubufed", + "id": 2317496, + "avatar_url": "https://avatars.githubusercontent.com/u/2317496?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ubufed", + "html_url": "https://github.com/ubufed", + "followers_url": "https://api.github.com/users/ubufed/followers", + "following_url": "https://api.github.com/users/ubufed/following{/other_user}", + "gists_url": "https://api.github.com/users/ubufed/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ubufed/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ubufed/subscriptions", + "organizations_url": "https://api.github.com/users/ubufed/orgs", + "repos_url": "https://api.github.com/users/ubufed/repos", + "events_url": "https://api.github.com/users/ubufed/events{/privacy}", + "received_events_url": "https://api.github.com/users/ubufed/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ubufed/Nand2Tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/ubufed/Nand2Tetris", + "forks_url": "https://api.github.com/repos/ubufed/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/ubufed/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ubufed/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ubufed/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/ubufed/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ubufed/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ubufed/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/ubufed/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ubufed/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ubufed/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/ubufed/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ubufed/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ubufed/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ubufed/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ubufed/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ubufed/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/ubufed/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ubufed/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ubufed/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ubufed/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/ubufed/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ubufed/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ubufed/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ubufed/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ubufed/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ubufed/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ubufed/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/ubufed/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ubufed/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/ubufed/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ubufed/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ubufed/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ubufed/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ubufed/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ubufed/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ubufed/Nand2Tetris/deployments", + "created_at": "2016-04-09T08:04:05Z", + "updated_at": "2016-04-09T08:12:24Z", + "pushed_at": "2016-04-24T00:34:57Z", + "git_url": "git://github.com/ubufed/Nand2Tetris.git", + "ssh_url": "git@github.com:ubufed/Nand2Tetris.git", + "clone_url": "https://github.com/ubufed/Nand2Tetris.git", + "svn_url": "https://github.com/ubufed/Nand2Tetris", + "homepage": null, + "size": 17, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 53232009, + "name": "nand2tetris", + "full_name": "contrarian/nand2tetris", + "owner": { + "login": "contrarian", + "id": 5007279, + "avatar_url": "https://avatars.githubusercontent.com/u/5007279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/contrarian", + "html_url": "https://github.com/contrarian", + "followers_url": "https://api.github.com/users/contrarian/followers", + "following_url": "https://api.github.com/users/contrarian/following{/other_user}", + "gists_url": "https://api.github.com/users/contrarian/gists{/gist_id}", + "starred_url": "https://api.github.com/users/contrarian/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/contrarian/subscriptions", + "organizations_url": "https://api.github.com/users/contrarian/orgs", + "repos_url": "https://api.github.com/users/contrarian/repos", + "events_url": "https://api.github.com/users/contrarian/events{/privacy}", + "received_events_url": "https://api.github.com/users/contrarian/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/contrarian/nand2tetris", + "description": "nand2tetris is a 12 project effort to build a computer system from scratch. This repository contains my files for the project. ", + "fork": false, + "url": "https://api.github.com/repos/contrarian/nand2tetris", + "forks_url": "https://api.github.com/repos/contrarian/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/contrarian/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/contrarian/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/contrarian/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/contrarian/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/contrarian/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/contrarian/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/contrarian/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/contrarian/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/contrarian/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/contrarian/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/contrarian/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/contrarian/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/contrarian/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/contrarian/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/contrarian/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/contrarian/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/contrarian/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/contrarian/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/contrarian/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/contrarian/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/contrarian/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/contrarian/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/contrarian/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/contrarian/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/contrarian/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/contrarian/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/contrarian/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/contrarian/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/contrarian/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/contrarian/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/contrarian/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/contrarian/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/contrarian/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/contrarian/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/contrarian/nand2tetris/deployments", + "created_at": "2016-03-06T01:35:06Z", + "updated_at": "2016-03-06T01:52:27Z", + "pushed_at": "2016-05-07T04:20:53Z", + "git_url": "git://github.com/contrarian/nand2tetris.git", + "ssh_url": "git@github.com:contrarian/nand2tetris.git", + "clone_url": "https://github.com/contrarian/nand2tetris.git", + "svn_url": "https://github.com/contrarian/nand2tetris", + "homepage": null, + "size": 263, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 58883051, + "name": "nand2tetris", + "full_name": "ilyarudyak/nand2tetris", + "owner": { + "login": "ilyarudyak", + "id": 4819603, + "avatar_url": "https://avatars.githubusercontent.com/u/4819603?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ilyarudyak", + "html_url": "https://github.com/ilyarudyak", + "followers_url": "https://api.github.com/users/ilyarudyak/followers", + "following_url": "https://api.github.com/users/ilyarudyak/following{/other_user}", + "gists_url": "https://api.github.com/users/ilyarudyak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ilyarudyak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ilyarudyak/subscriptions", + "organizations_url": "https://api.github.com/users/ilyarudyak/orgs", + "repos_url": "https://api.github.com/users/ilyarudyak/repos", + "events_url": "https://api.github.com/users/ilyarudyak/events{/privacy}", + "received_events_url": "https://api.github.com/users/ilyarudyak/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ilyarudyak/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/ilyarudyak/nand2tetris", + "forks_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ilyarudyak/nand2tetris/deployments", + "created_at": "2016-05-15T20:33:36Z", + "updated_at": "2016-05-15T21:10:14Z", + "pushed_at": "2016-05-15T21:10:12Z", + "git_url": "git://github.com/ilyarudyak/nand2tetris.git", + "ssh_url": "git@github.com:ilyarudyak/nand2tetris.git", + "clone_url": "https://github.com/ilyarudyak/nand2tetris.git", + "svn_url": "https://github.com/ilyarudyak/nand2tetris", + "homepage": null, + "size": 507, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 55005461, + "name": "Nand2Tetris", + "full_name": "Grandiferr/Nand2Tetris", + "owner": { + "login": "Grandiferr", + "id": 10864227, + "avatar_url": "https://avatars.githubusercontent.com/u/10864227?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Grandiferr", + "html_url": "https://github.com/Grandiferr", + "followers_url": "https://api.github.com/users/Grandiferr/followers", + "following_url": "https://api.github.com/users/Grandiferr/following{/other_user}", + "gists_url": "https://api.github.com/users/Grandiferr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Grandiferr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Grandiferr/subscriptions", + "organizations_url": "https://api.github.com/users/Grandiferr/orgs", + "repos_url": "https://api.github.com/users/Grandiferr/repos", + "events_url": "https://api.github.com/users/Grandiferr/events{/privacy}", + "received_events_url": "https://api.github.com/users/Grandiferr/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Grandiferr/Nand2Tetris", + "description": "Archive of Nand2Tetris course projects", + "fork": false, + "url": "https://api.github.com/repos/Grandiferr/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Grandiferr/Nand2Tetris/deployments", + "created_at": "2016-03-29T19:39:49Z", + "updated_at": "2016-05-13T17:20:22Z", + "pushed_at": "2016-05-13T21:32:51Z", + "git_url": "git://github.com/Grandiferr/Nand2Tetris.git", + "ssh_url": "git@github.com:Grandiferr/Nand2Tetris.git", + "clone_url": "https://github.com/Grandiferr/Nand2Tetris.git", + "svn_url": "https://github.com/Grandiferr/Nand2Tetris", + "homepage": null, + "size": 41, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 56050156, + "name": "Nand2Tetris", + "full_name": "okamototy/Nand2Tetris", + "owner": { + "login": "okamototy", + "id": 18417451, + "avatar_url": "https://avatars.githubusercontent.com/u/18417451?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/okamototy", + "html_url": "https://github.com/okamototy", + "followers_url": "https://api.github.com/users/okamototy/followers", + "following_url": "https://api.github.com/users/okamototy/following{/other_user}", + "gists_url": "https://api.github.com/users/okamototy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/okamototy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/okamototy/subscriptions", + "organizations_url": "https://api.github.com/users/okamototy/orgs", + "repos_url": "https://api.github.com/users/okamototy/repos", + "events_url": "https://api.github.com/users/okamototy/events{/privacy}", + "received_events_url": "https://api.github.com/users/okamototy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/okamototy/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/okamototy/Nand2Tetris", + "forks_url": "https://api.github.com/repos/okamototy/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/okamototy/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/okamototy/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/okamototy/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/okamototy/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/okamototy/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/okamototy/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/okamototy/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/okamototy/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/okamototy/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/okamototy/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/okamototy/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/okamototy/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/okamototy/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/okamototy/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/okamototy/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/okamototy/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/okamototy/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/okamototy/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/okamototy/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/okamototy/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/okamototy/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/okamototy/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/okamototy/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/okamototy/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/okamototy/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/okamototy/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/okamototy/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/okamototy/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/okamototy/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/okamototy/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/okamototy/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/okamototy/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/okamototy/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/okamototy/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/okamototy/Nand2Tetris/deployments", + "created_at": "2016-04-12T09:36:36Z", + "updated_at": "2016-05-11T09:50:31Z", + "pushed_at": "2016-05-18T11:03:54Z", + "git_url": "git://github.com/okamototy/Nand2Tetris.git", + "ssh_url": "git@github.com:okamototy/Nand2Tetris.git", + "clone_url": "https://github.com/okamototy/Nand2Tetris.git", + "svn_url": "https://github.com/okamototy/Nand2Tetris", + "homepage": null, + "size": 16, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 11585167, + "name": "hs-nand2tetris", + "full_name": "cmisenas/hs-nand2tetris", + "owner": { + "login": "cmisenas", + "id": 3933148, + "avatar_url": "https://avatars.githubusercontent.com/u/3933148?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cmisenas", + "html_url": "https://github.com/cmisenas", + "followers_url": "https://api.github.com/users/cmisenas/followers", + "following_url": "https://api.github.com/users/cmisenas/following{/other_user}", + "gists_url": "https://api.github.com/users/cmisenas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cmisenas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cmisenas/subscriptions", + "organizations_url": "https://api.github.com/users/cmisenas/orgs", + "repos_url": "https://api.github.com/users/cmisenas/repos", + "events_url": "https://api.github.com/users/cmisenas/events{/privacy}", + "received_events_url": "https://api.github.com/users/cmisenas/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cmisenas/hs-nand2tetris", + "description": "Awesome nand2tetris course!! Began taking on hacker school.", + "fork": false, + "url": "https://api.github.com/repos/cmisenas/hs-nand2tetris", + "forks_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/forks", + "keys_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/events", + "assignees_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/merges", + "archive_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cmisenas/hs-nand2tetris/deployments", + "created_at": "2013-07-22T15:40:33Z", + "updated_at": "2015-08-02T02:28:12Z", + "pushed_at": "2015-08-02T03:22:46Z", + "git_url": "git://github.com/cmisenas/hs-nand2tetris.git", + "ssh_url": "git@github.com:cmisenas/hs-nand2tetris.git", + "clone_url": "https://github.com/cmisenas/hs-nand2tetris.git", + "svn_url": "https://github.com/cmisenas/hs-nand2tetris", + "homepage": "", + "size": 320, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 57889393, + "name": "FromNandtoTetris", + "full_name": "yellowmoneybank/FromNandtoTetris", + "owner": { + "login": "yellowmoneybank", + "id": 16255242, + "avatar_url": "https://avatars.githubusercontent.com/u/16255242?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yellowmoneybank", + "html_url": "https://github.com/yellowmoneybank", + "followers_url": "https://api.github.com/users/yellowmoneybank/followers", + "following_url": "https://api.github.com/users/yellowmoneybank/following{/other_user}", + "gists_url": "https://api.github.com/users/yellowmoneybank/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yellowmoneybank/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yellowmoneybank/subscriptions", + "organizations_url": "https://api.github.com/users/yellowmoneybank/orgs", + "repos_url": "https://api.github.com/users/yellowmoneybank/repos", + "events_url": "https://api.github.com/users/yellowmoneybank/events{/privacy}", + "received_events_url": "https://api.github.com/users/yellowmoneybank/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yellowmoneybank/FromNandtoTetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris", + "forks_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/forks", + "keys_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/teams", + "hooks_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/hooks", + "issue_events_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/events", + "assignees_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/tags", + "blobs_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/languages", + "stargazers_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/stargazers", + "contributors_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/contributors", + "subscribers_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/subscribers", + "subscription_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/subscription", + "commits_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/merges", + "archive_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/downloads", + "issues_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yellowmoneybank/FromNandtoTetris/deployments", + "created_at": "2016-05-02T12:41:35Z", + "updated_at": "2016-05-02T12:46:50Z", + "pushed_at": "2016-05-19T15:56:28Z", + "git_url": "git://github.com/yellowmoneybank/FromNandtoTetris.git", + "ssh_url": "git@github.com:yellowmoneybank/FromNandtoTetris.git", + "clone_url": "https://github.com/yellowmoneybank/FromNandtoTetris.git", + "svn_url": "https://github.com/yellowmoneybank/FromNandtoTetris", + "homepage": null, + "size": 517, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 55148151, + "name": "nand2tetris", + "full_name": "RyanPSullivan/nand2tetris", + "owner": { + "login": "RyanPSullivan", + "id": 1622013, + "avatar_url": "https://avatars.githubusercontent.com/u/1622013?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/RyanPSullivan", + "html_url": "https://github.com/RyanPSullivan", + "followers_url": "https://api.github.com/users/RyanPSullivan/followers", + "following_url": "https://api.github.com/users/RyanPSullivan/following{/other_user}", + "gists_url": "https://api.github.com/users/RyanPSullivan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/RyanPSullivan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/RyanPSullivan/subscriptions", + "organizations_url": "https://api.github.com/users/RyanPSullivan/orgs", + "repos_url": "https://api.github.com/users/RyanPSullivan/repos", + "events_url": "https://api.github.com/users/RyanPSullivan/events{/privacy}", + "received_events_url": "https://api.github.com/users/RyanPSullivan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/RyanPSullivan/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/RyanPSullivan/nand2tetris", + "forks_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/RyanPSullivan/nand2tetris/deployments", + "created_at": "2016-03-31T12:17:48Z", + "updated_at": "2016-04-04T13:03:38Z", + "pushed_at": "2016-05-19T11:44:52Z", + "git_url": "git://github.com/RyanPSullivan/nand2tetris.git", + "ssh_url": "git@github.com:RyanPSullivan/nand2tetris.git", + "clone_url": "https://github.com/RyanPSullivan/nand2tetris.git", + "svn_url": "https://github.com/RyanPSullivan/nand2tetris", + "homepage": null, + "size": 542, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 57170709, + "name": "Nand2Tetris", + "full_name": "KyleBWilson49/Nand2Tetris", + "owner": { + "login": "KyleBWilson49", + "id": 14809705, + "avatar_url": "https://avatars.githubusercontent.com/u/14809705?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/KyleBWilson49", + "html_url": "https://github.com/KyleBWilson49", + "followers_url": "https://api.github.com/users/KyleBWilson49/followers", + "following_url": "https://api.github.com/users/KyleBWilson49/following{/other_user}", + "gists_url": "https://api.github.com/users/KyleBWilson49/gists{/gist_id}", + "starred_url": "https://api.github.com/users/KyleBWilson49/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/KyleBWilson49/subscriptions", + "organizations_url": "https://api.github.com/users/KyleBWilson49/orgs", + "repos_url": "https://api.github.com/users/KyleBWilson49/repos", + "events_url": "https://api.github.com/users/KyleBWilson49/events{/privacy}", + "received_events_url": "https://api.github.com/users/KyleBWilson49/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/KyleBWilson49/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris", + "forks_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/KyleBWilson49/Nand2Tetris/deployments", + "created_at": "2016-04-27T00:17:24Z", + "updated_at": "2016-04-27T00:17:46Z", + "pushed_at": "2016-04-27T00:17:44Z", + "git_url": "git://github.com/KyleBWilson49/Nand2Tetris.git", + "ssh_url": "git@github.com:KyleBWilson49/Nand2Tetris.git", + "clone_url": "https://github.com/KyleBWilson49/Nand2Tetris.git", + "svn_url": "https://github.com/KyleBWilson49/Nand2Tetris", + "homepage": null, + "size": 171, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 55377577, + "name": "nand2tetris", + "full_name": "JediKoder/nand2tetris", + "owner": { + "login": "JediKoder", + "id": 16416542, + "avatar_url": "https://avatars.githubusercontent.com/u/16416542?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/JediKoder", + "html_url": "https://github.com/JediKoder", + "followers_url": "https://api.github.com/users/JediKoder/followers", + "following_url": "https://api.github.com/users/JediKoder/following{/other_user}", + "gists_url": "https://api.github.com/users/JediKoder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JediKoder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JediKoder/subscriptions", + "organizations_url": "https://api.github.com/users/JediKoder/orgs", + "repos_url": "https://api.github.com/users/JediKoder/repos", + "events_url": "https://api.github.com/users/JediKoder/events{/privacy}", + "received_events_url": "https://api.github.com/users/JediKoder/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/JediKoder/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/JediKoder/nand2tetris", + "forks_url": "https://api.github.com/repos/JediKoder/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/JediKoder/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/JediKoder/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/JediKoder/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/JediKoder/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/JediKoder/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/JediKoder/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/JediKoder/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/JediKoder/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/JediKoder/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/JediKoder/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/JediKoder/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/JediKoder/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/JediKoder/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/JediKoder/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/JediKoder/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/JediKoder/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/JediKoder/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/JediKoder/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/JediKoder/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/JediKoder/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/JediKoder/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/JediKoder/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/JediKoder/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/JediKoder/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/JediKoder/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/JediKoder/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/JediKoder/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/JediKoder/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/JediKoder/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/JediKoder/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/JediKoder/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/JediKoder/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/JediKoder/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/JediKoder/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/JediKoder/nand2tetris/deployments", + "created_at": "2016-04-04T01:11:41Z", + "updated_at": "2016-04-28T04:33:10Z", + "pushed_at": "2016-04-17T23:09:43Z", + "git_url": "git://github.com/JediKoder/nand2tetris.git", + "ssh_url": "git@github.com:JediKoder/nand2tetris.git", + "clone_url": "https://github.com/JediKoder/nand2tetris.git", + "svn_url": "https://github.com/JediKoder/nand2tetris", + "homepage": null, + "size": 754, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 57323220, + "name": "Nand2Tetris", + "full_name": "Kannaj/Nand2Tetris", + "owner": { + "login": "Kannaj", + "id": 13432536, + "avatar_url": "https://avatars.githubusercontent.com/u/13432536?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Kannaj", + "html_url": "https://github.com/Kannaj", + "followers_url": "https://api.github.com/users/Kannaj/followers", + "following_url": "https://api.github.com/users/Kannaj/following{/other_user}", + "gists_url": "https://api.github.com/users/Kannaj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Kannaj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kannaj/subscriptions", + "organizations_url": "https://api.github.com/users/Kannaj/orgs", + "repos_url": "https://api.github.com/users/Kannaj/repos", + "events_url": "https://api.github.com/users/Kannaj/events{/privacy}", + "received_events_url": "https://api.github.com/users/Kannaj/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Kannaj/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Kannaj/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Kannaj/Nand2Tetris/deployments", + "created_at": "2016-04-28T18:01:47Z", + "updated_at": "2016-04-28T18:03:32Z", + "pushed_at": "2016-04-28T18:04:14Z", + "git_url": "git://github.com/Kannaj/Nand2Tetris.git", + "ssh_url": "git@github.com:Kannaj/Nand2Tetris.git", + "clone_url": "https://github.com/Kannaj/Nand2Tetris.git", + "svn_url": "https://github.com/Kannaj/Nand2Tetris", + "homepage": null, + "size": 151, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + }, + { + "id": 60042196, + "name": "nand2tetris", + "full_name": "jmoyers/nand2tetris", + "owner": { + "login": "jmoyers", + "id": 235505, + "avatar_url": "https://avatars.githubusercontent.com/u/235505?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jmoyers", + "html_url": "https://github.com/jmoyers", + "followers_url": "https://api.github.com/users/jmoyers/followers", + "following_url": "https://api.github.com/users/jmoyers/following{/other_user}", + "gists_url": "https://api.github.com/users/jmoyers/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jmoyers/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jmoyers/subscriptions", + "organizations_url": "https://api.github.com/users/jmoyers/orgs", + "repos_url": "https://api.github.com/users/jmoyers/repos", + "events_url": "https://api.github.com/users/jmoyers/events{/privacy}", + "received_events_url": "https://api.github.com/users/jmoyers/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jmoyers/nand2tetris", + "description": "A computer built in HDL via http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/jmoyers/nand2tetris", + "forks_url": "https://api.github.com/repos/jmoyers/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jmoyers/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jmoyers/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jmoyers/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jmoyers/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jmoyers/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jmoyers/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jmoyers/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jmoyers/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jmoyers/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jmoyers/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jmoyers/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jmoyers/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jmoyers/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jmoyers/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jmoyers/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jmoyers/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jmoyers/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jmoyers/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jmoyers/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jmoyers/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jmoyers/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jmoyers/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jmoyers/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jmoyers/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jmoyers/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jmoyers/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jmoyers/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jmoyers/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jmoyers/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jmoyers/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jmoyers/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jmoyers/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jmoyers/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jmoyers/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jmoyers/nand2tetris/deployments", + "created_at": "2016-05-30T22:22:48Z", + "updated_at": "2016-06-03T00:16:12Z", + "pushed_at": "2016-06-04T00:43:08Z", + "git_url": "git://github.com/jmoyers/nand2tetris.git", + "ssh_url": "git@github.com:jmoyers/nand2tetris.git", + "clone_url": "https://github.com/jmoyers/nand2tetris.git", + "svn_url": "https://github.com/jmoyers/nand2tetris", + "homepage": "http://jmoyers.org/nand2tetris/", + "size": 26, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2584372 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:14 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "481603", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "28", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"next\", ; rel=\"last\", ; rel=\"first\", ; rel=\"prev\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "a474937f3b2fa272558fa6dc951018ad", + "x-github-request-id": "AE1408AB:5528:836B1F3:5769F4B1" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/repositories?q=tetris+language%3Aassembly&sort=stars&order=desc&type=all&per_page=100&page=3&q=tetris+language:assembly&sort=stars&order=desc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 473, + "incomplete_results": false, + "items": [ + { + "id": 58152629, + "name": "nand2tetris", + "full_name": "Chebotarev/nand2tetris", + "owner": { + "login": "Chebotarev", + "id": 4983495, + "avatar_url": "https://avatars.githubusercontent.com/u/4983495?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Chebotarev", + "html_url": "https://github.com/Chebotarev", + "followers_url": "https://api.github.com/users/Chebotarev/followers", + "following_url": "https://api.github.com/users/Chebotarev/following{/other_user}", + "gists_url": "https://api.github.com/users/Chebotarev/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Chebotarev/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Chebotarev/subscriptions", + "organizations_url": "https://api.github.com/users/Chebotarev/orgs", + "repos_url": "https://api.github.com/users/Chebotarev/repos", + "events_url": "https://api.github.com/users/Chebotarev/events{/privacy}", + "received_events_url": "https://api.github.com/users/Chebotarev/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Chebotarev/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Chebotarev/nand2tetris", + "forks_url": "https://api.github.com/repos/Chebotarev/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Chebotarev/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Chebotarev/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Chebotarev/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Chebotarev/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Chebotarev/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Chebotarev/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Chebotarev/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Chebotarev/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Chebotarev/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Chebotarev/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Chebotarev/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Chebotarev/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Chebotarev/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Chebotarev/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Chebotarev/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Chebotarev/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Chebotarev/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Chebotarev/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Chebotarev/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Chebotarev/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Chebotarev/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Chebotarev/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Chebotarev/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Chebotarev/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Chebotarev/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Chebotarev/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Chebotarev/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Chebotarev/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Chebotarev/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Chebotarev/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Chebotarev/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Chebotarev/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Chebotarev/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Chebotarev/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Chebotarev/nand2tetris/deployments", + "created_at": "2016-05-05T18:39:07Z", + "updated_at": "2016-05-05T18:39:47Z", + "pushed_at": "2016-06-06T16:15:50Z", + "git_url": "git://github.com/Chebotarev/nand2tetris.git", + "ssh_url": "git@github.com:Chebotarev/nand2tetris.git", + "clone_url": "https://github.com/Chebotarev/nand2tetris.git", + "svn_url": "https://github.com/Chebotarev/nand2tetris", + "homepage": null, + "size": 505, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 56449727, + "name": "nand2tetris", + "full_name": "ErwinM/nand2tetris", + "owner": { + "login": "ErwinM", + "id": 451731, + "avatar_url": "https://avatars.githubusercontent.com/u/451731?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ErwinM", + "html_url": "https://github.com/ErwinM", + "followers_url": "https://api.github.com/users/ErwinM/followers", + "following_url": "https://api.github.com/users/ErwinM/following{/other_user}", + "gists_url": "https://api.github.com/users/ErwinM/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ErwinM/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ErwinM/subscriptions", + "organizations_url": "https://api.github.com/users/ErwinM/orgs", + "repos_url": "https://api.github.com/users/ErwinM/repos", + "events_url": "https://api.github.com/users/ErwinM/events{/privacy}", + "received_events_url": "https://api.github.com/users/ErwinM/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ErwinM/nand2tetris", + "description": "building a CPU from scratch", + "fork": false, + "url": "https://api.github.com/repos/ErwinM/nand2tetris", + "forks_url": "https://api.github.com/repos/ErwinM/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ErwinM/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ErwinM/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ErwinM/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ErwinM/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ErwinM/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ErwinM/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ErwinM/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ErwinM/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ErwinM/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ErwinM/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ErwinM/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ErwinM/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ErwinM/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ErwinM/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ErwinM/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ErwinM/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ErwinM/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ErwinM/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ErwinM/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ErwinM/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ErwinM/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ErwinM/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ErwinM/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ErwinM/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ErwinM/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ErwinM/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ErwinM/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ErwinM/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ErwinM/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ErwinM/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ErwinM/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ErwinM/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ErwinM/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ErwinM/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ErwinM/nand2tetris/deployments", + "created_at": "2016-04-17T17:39:22Z", + "updated_at": "2016-04-17T17:39:42Z", + "pushed_at": "2016-06-06T21:37:38Z", + "git_url": "git://github.com/ErwinM/nand2tetris.git", + "ssh_url": "git@github.com:ErwinM/nand2tetris.git", + "clone_url": "https://github.com/ErwinM/nand2tetris.git", + "svn_url": "https://github.com/ErwinM/nand2tetris", + "homepage": null, + "size": 553, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 51807687, + "name": "nand2tetris_projects", + "full_name": "nwokeo/nand2tetris_projects", + "owner": { + "login": "nwokeo", + "id": 132086, + "avatar_url": "https://avatars.githubusercontent.com/u/132086?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nwokeo", + "html_url": "https://github.com/nwokeo", + "followers_url": "https://api.github.com/users/nwokeo/followers", + "following_url": "https://api.github.com/users/nwokeo/following{/other_user}", + "gists_url": "https://api.github.com/users/nwokeo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nwokeo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nwokeo/subscriptions", + "organizations_url": "https://api.github.com/users/nwokeo/orgs", + "repos_url": "https://api.github.com/users/nwokeo/repos", + "events_url": "https://api.github.com/users/nwokeo/events{/privacy}", + "received_events_url": "https://api.github.com/users/nwokeo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nwokeo/nand2tetris_projects", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/nwokeo/nand2tetris_projects", + "forks_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/forks", + "keys_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/teams", + "hooks_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/hooks", + "issue_events_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/events", + "assignees_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/tags", + "blobs_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/languages", + "stargazers_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/stargazers", + "contributors_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/contributors", + "subscribers_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/subscribers", + "subscription_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/subscription", + "commits_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/merges", + "archive_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/downloads", + "issues_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/labels{/name}", + "releases_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/nwokeo/nand2tetris_projects/deployments", + "created_at": "2016-02-16T04:22:57Z", + "updated_at": "2016-02-17T17:41:56Z", + "pushed_at": "2016-06-06T03:40:24Z", + "git_url": "git://github.com/nwokeo/nand2tetris_projects.git", + "ssh_url": "git@github.com:nwokeo/nand2tetris_projects.git", + "clone_url": "https://github.com/nwokeo/nand2tetris_projects.git", + "svn_url": "https://github.com/nwokeo/nand2tetris_projects", + "homepage": null, + "size": 165, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 56048885, + "name": "nand2tetris", + "full_name": "bleach31/nand2tetris", + "owner": { + "login": "bleach31", + "id": 5919566, + "avatar_url": "https://avatars.githubusercontent.com/u/5919566?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bleach31", + "html_url": "https://github.com/bleach31", + "followers_url": "https://api.github.com/users/bleach31/followers", + "following_url": "https://api.github.com/users/bleach31/following{/other_user}", + "gists_url": "https://api.github.com/users/bleach31/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bleach31/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bleach31/subscriptions", + "organizations_url": "https://api.github.com/users/bleach31/orgs", + "repos_url": "https://api.github.com/users/bleach31/repos", + "events_url": "https://api.github.com/users/bleach31/events{/privacy}", + "received_events_url": "https://api.github.com/users/bleach31/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bleach31/nand2tetris", + "description": "コンピュータシステムの理論と実装", + "fork": false, + "url": "https://api.github.com/repos/bleach31/nand2tetris", + "forks_url": "https://api.github.com/repos/bleach31/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bleach31/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bleach31/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bleach31/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bleach31/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bleach31/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bleach31/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bleach31/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bleach31/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bleach31/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bleach31/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bleach31/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bleach31/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bleach31/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bleach31/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bleach31/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bleach31/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bleach31/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bleach31/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bleach31/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bleach31/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bleach31/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bleach31/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bleach31/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bleach31/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bleach31/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bleach31/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bleach31/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bleach31/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bleach31/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bleach31/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bleach31/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bleach31/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bleach31/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bleach31/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bleach31/nand2tetris/deployments", + "created_at": "2016-04-12T09:19:57Z", + "updated_at": "2016-04-14T07:39:04Z", + "pushed_at": "2016-06-09T03:38:45Z", + "git_url": "git://github.com/bleach31/nand2tetris.git", + "ssh_url": "git@github.com:bleach31/nand2tetris.git", + "clone_url": "https://github.com/bleach31/nand2tetris.git", + "svn_url": "https://github.com/bleach31/nand2tetris", + "homepage": null, + "size": 569, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 58296664, + "name": "nand2tetris", + "full_name": "kejadlen/nand2tetris", + "owner": { + "login": "kejadlen", + "id": 8639, + "avatar_url": "https://avatars.githubusercontent.com/u/8639?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kejadlen", + "html_url": "https://github.com/kejadlen", + "followers_url": "https://api.github.com/users/kejadlen/followers", + "following_url": "https://api.github.com/users/kejadlen/following{/other_user}", + "gists_url": "https://api.github.com/users/kejadlen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kejadlen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kejadlen/subscriptions", + "organizations_url": "https://api.github.com/users/kejadlen/orgs", + "repos_url": "https://api.github.com/users/kejadlen/repos", + "events_url": "https://api.github.com/users/kejadlen/events{/privacy}", + "received_events_url": "https://api.github.com/users/kejadlen/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kejadlen/nand2tetris", + "description": "Exercises for Nand2Tetris: Building a Modern Computer from First Principles", + "fork": false, + "url": "https://api.github.com/repos/kejadlen/nand2tetris", + "forks_url": "https://api.github.com/repos/kejadlen/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kejadlen/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kejadlen/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kejadlen/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kejadlen/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kejadlen/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kejadlen/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kejadlen/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kejadlen/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kejadlen/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kejadlen/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kejadlen/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kejadlen/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kejadlen/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kejadlen/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kejadlen/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kejadlen/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kejadlen/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kejadlen/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kejadlen/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kejadlen/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kejadlen/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kejadlen/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kejadlen/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kejadlen/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kejadlen/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kejadlen/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kejadlen/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kejadlen/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kejadlen/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kejadlen/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kejadlen/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kejadlen/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kejadlen/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kejadlen/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kejadlen/nand2tetris/deployments", + "created_at": "2016-05-08T04:33:14Z", + "updated_at": "2016-05-15T20:32:41Z", + "pushed_at": "2016-06-13T14:39:59Z", + "git_url": "git://github.com/kejadlen/nand2tetris.git", + "ssh_url": "git@github.com:kejadlen/nand2tetris.git", + "clone_url": "https://github.com/kejadlen/nand2tetris.git", + "svn_url": "https://github.com/kejadlen/nand2tetris", + "homepage": "", + "size": 284, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 53294715, + "name": "nand2tetris", + "full_name": "chuckSMASH/nand2tetris", + "owner": { + "login": "chuckSMASH", + "id": 3101367, + "avatar_url": "https://avatars.githubusercontent.com/u/3101367?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/chuckSMASH", + "html_url": "https://github.com/chuckSMASH", + "followers_url": "https://api.github.com/users/chuckSMASH/followers", + "following_url": "https://api.github.com/users/chuckSMASH/following{/other_user}", + "gists_url": "https://api.github.com/users/chuckSMASH/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chuckSMASH/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chuckSMASH/subscriptions", + "organizations_url": "https://api.github.com/users/chuckSMASH/orgs", + "repos_url": "https://api.github.com/users/chuckSMASH/repos", + "events_url": "https://api.github.com/users/chuckSMASH/events{/privacy}", + "received_events_url": "https://api.github.com/users/chuckSMASH/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/chuckSMASH/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/chuckSMASH/nand2tetris", + "forks_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/chuckSMASH/nand2tetris/deployments", + "created_at": "2016-03-07T04:01:51Z", + "updated_at": "2016-06-13T03:10:14Z", + "pushed_at": "2016-06-14T00:34:00Z", + "git_url": "git://github.com/chuckSMASH/nand2tetris.git", + "ssh_url": "git@github.com:chuckSMASH/nand2tetris.git", + "clone_url": "https://github.com/chuckSMASH/nand2tetris.git", + "svn_url": "https://github.com/chuckSMASH/nand2tetris", + "homepage": null, + "size": 78, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 56850912, + "name": "from-nand-to-tetris", + "full_name": "omarrayward/from-nand-to-tetris", + "owner": { + "login": "omarrayward", + "id": 1934424, + "avatar_url": "https://avatars.githubusercontent.com/u/1934424?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/omarrayward", + "html_url": "https://github.com/omarrayward", + "followers_url": "https://api.github.com/users/omarrayward/followers", + "following_url": "https://api.github.com/users/omarrayward/following{/other_user}", + "gists_url": "https://api.github.com/users/omarrayward/gists{/gist_id}", + "starred_url": "https://api.github.com/users/omarrayward/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/omarrayward/subscriptions", + "organizations_url": "https://api.github.com/users/omarrayward/orgs", + "repos_url": "https://api.github.com/users/omarrayward/repos", + "events_url": "https://api.github.com/users/omarrayward/events{/privacy}", + "received_events_url": "https://api.github.com/users/omarrayward/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/omarrayward/from-nand-to-tetris", + "description": "Solutions for the book \"The Elements of Computing Systems: Building a Modern Computer from First Principles\"", + "fork": false, + "url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris", + "forks_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/forks", + "keys_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/teams", + "hooks_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/hooks", + "issue_events_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/events", + "assignees_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/tags", + "blobs_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/languages", + "stargazers_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/stargazers", + "contributors_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/contributors", + "subscribers_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/subscribers", + "subscription_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/subscription", + "commits_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/merges", + "archive_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/downloads", + "issues_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/omarrayward/from-nand-to-tetris/deployments", + "created_at": "2016-04-22T11:35:45Z", + "updated_at": "2016-04-22T11:58:42Z", + "pushed_at": "2016-06-17T16:31:15Z", + "git_url": "git://github.com/omarrayward/from-nand-to-tetris.git", + "ssh_url": "git@github.com:omarrayward/from-nand-to-tetris.git", + "clone_url": "https://github.com/omarrayward/from-nand-to-tetris.git", + "svn_url": "https://github.com/omarrayward/from-nand-to-tetris", + "homepage": null, + "size": 589, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 60189466, + "name": "nand2tetris", + "full_name": "macroscopicentric/nand2tetris", + "owner": { + "login": "macroscopicentric", + "id": 5589957, + "avatar_url": "https://avatars.githubusercontent.com/u/5589957?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/macroscopicentric", + "html_url": "https://github.com/macroscopicentric", + "followers_url": "https://api.github.com/users/macroscopicentric/followers", + "following_url": "https://api.github.com/users/macroscopicentric/following{/other_user}", + "gists_url": "https://api.github.com/users/macroscopicentric/gists{/gist_id}", + "starred_url": "https://api.github.com/users/macroscopicentric/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/macroscopicentric/subscriptions", + "organizations_url": "https://api.github.com/users/macroscopicentric/orgs", + "repos_url": "https://api.github.com/users/macroscopicentric/repos", + "events_url": "https://api.github.com/users/macroscopicentric/events{/privacy}", + "received_events_url": "https://api.github.com/users/macroscopicentric/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/macroscopicentric/nand2tetris", + "description": "Exercises from Nand2Tetris.", + "fork": false, + "url": "https://api.github.com/repos/macroscopicentric/nand2tetris", + "forks_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/macroscopicentric/nand2tetris/deployments", + "created_at": "2016-06-01T15:34:50Z", + "updated_at": "2016-06-13T20:17:36Z", + "pushed_at": "2016-06-21T15:59:27Z", + "git_url": "git://github.com/macroscopicentric/nand2tetris.git", + "ssh_url": "git@github.com:macroscopicentric/nand2tetris.git", + "clone_url": "https://github.com/macroscopicentric/nand2tetris.git", + "svn_url": "https://github.com/macroscopicentric/nand2tetris", + "homepage": null, + "size": 15, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.258437 + }, + { + "id": 24294103, + "name": "nand2tetris", + "full_name": "itayabu/nand2tetris", + "owner": { + "login": "itayabu", + "id": 6882339, + "avatar_url": "https://avatars.githubusercontent.com/u/6882339?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/itayabu", + "html_url": "https://github.com/itayabu", + "followers_url": "https://api.github.com/users/itayabu/followers", + "following_url": "https://api.github.com/users/itayabu/following{/other_user}", + "gists_url": "https://api.github.com/users/itayabu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/itayabu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/itayabu/subscriptions", + "organizations_url": "https://api.github.com/users/itayabu/orgs", + "repos_url": "https://api.github.com/users/itayabu/repos", + "events_url": "https://api.github.com/users/itayabu/events{/privacy}", + "received_events_url": "https://api.github.com/users/itayabu/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/itayabu/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/itayabu/nand2tetris", + "forks_url": "https://api.github.com/repos/itayabu/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/itayabu/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/itayabu/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/itayabu/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/itayabu/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/itayabu/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/itayabu/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/itayabu/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/itayabu/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/itayabu/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/itayabu/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/itayabu/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/itayabu/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/itayabu/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/itayabu/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/itayabu/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/itayabu/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/itayabu/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/itayabu/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/itayabu/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/itayabu/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/itayabu/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/itayabu/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/itayabu/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/itayabu/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/itayabu/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/itayabu/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/itayabu/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/itayabu/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/itayabu/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/itayabu/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/itayabu/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/itayabu/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/itayabu/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/itayabu/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/itayabu/nand2tetris/deployments", + "created_at": "2014-09-21T15:05:57Z", + "updated_at": "2015-05-05T10:11:18Z", + "pushed_at": "2015-06-22T07:21:37Z", + "git_url": "git://github.com/itayabu/nand2tetris.git", + "ssh_url": "git@github.com:itayabu/nand2tetris.git", + "clone_url": "https://github.com/itayabu/nand2tetris.git", + "svn_url": "https://github.com/itayabu/nand2tetris", + "homepage": null, + "size": 528, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 25301783, + "name": "nand2tetris", + "full_name": "sdemario/nand2tetris", + "owner": { + "login": "sdemario", + "id": 565145, + "avatar_url": "https://avatars.githubusercontent.com/u/565145?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sdemario", + "html_url": "https://github.com/sdemario", + "followers_url": "https://api.github.com/users/sdemario/followers", + "following_url": "https://api.github.com/users/sdemario/following{/other_user}", + "gists_url": "https://api.github.com/users/sdemario/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sdemario/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sdemario/subscriptions", + "organizations_url": "https://api.github.com/users/sdemario/orgs", + "repos_url": "https://api.github.com/users/sdemario/repos", + "events_url": "https://api.github.com/users/sdemario/events{/privacy}", + "received_events_url": "https://api.github.com/users/sdemario/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sdemario/nand2tetris", + "description": "Exercises from the Book The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/sdemario/nand2tetris", + "forks_url": "https://api.github.com/repos/sdemario/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/sdemario/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sdemario/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sdemario/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/sdemario/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/sdemario/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/sdemario/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/sdemario/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/sdemario/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/sdemario/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/sdemario/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sdemario/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sdemario/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sdemario/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sdemario/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sdemario/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/sdemario/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/sdemario/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/sdemario/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/sdemario/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/sdemario/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sdemario/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sdemario/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sdemario/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sdemario/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/sdemario/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sdemario/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/sdemario/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sdemario/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/sdemario/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/sdemario/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sdemario/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sdemario/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sdemario/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/sdemario/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/sdemario/nand2tetris/deployments", + "created_at": "2014-10-16T12:49:37Z", + "updated_at": "2014-10-16T13:02:37Z", + "pushed_at": "2014-10-16T13:02:37Z", + "git_url": "git://github.com/sdemario/nand2tetris.git", + "ssh_url": "git@github.com:sdemario/nand2tetris.git", + "clone_url": "https://github.com/sdemario/nand2tetris.git", + "svn_url": "https://github.com/sdemario/nand2tetris", + "homepage": null, + "size": 256, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 26615751, + "name": "nand2tetris", + "full_name": "abarnhard/nand2tetris", + "owner": { + "login": "abarnhard", + "id": 3149853, + "avatar_url": "https://avatars.githubusercontent.com/u/3149853?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/abarnhard", + "html_url": "https://github.com/abarnhard", + "followers_url": "https://api.github.com/users/abarnhard/followers", + "following_url": "https://api.github.com/users/abarnhard/following{/other_user}", + "gists_url": "https://api.github.com/users/abarnhard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abarnhard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abarnhard/subscriptions", + "organizations_url": "https://api.github.com/users/abarnhard/orgs", + "repos_url": "https://api.github.com/users/abarnhard/repos", + "events_url": "https://api.github.com/users/abarnhard/events{/privacy}", + "received_events_url": "https://api.github.com/users/abarnhard/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/abarnhard/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/abarnhard/nand2tetris", + "forks_url": "https://api.github.com/repos/abarnhard/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/abarnhard/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/abarnhard/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/abarnhard/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/abarnhard/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/abarnhard/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/abarnhard/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/abarnhard/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/abarnhard/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/abarnhard/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/abarnhard/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/abarnhard/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/abarnhard/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/abarnhard/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/abarnhard/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/abarnhard/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/abarnhard/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/abarnhard/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/abarnhard/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/abarnhard/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/abarnhard/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/abarnhard/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/abarnhard/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/abarnhard/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/abarnhard/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/abarnhard/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/abarnhard/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/abarnhard/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/abarnhard/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/abarnhard/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/abarnhard/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/abarnhard/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/abarnhard/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/abarnhard/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/abarnhard/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/abarnhard/nand2tetris/deployments", + "created_at": "2014-11-14T01:07:45Z", + "updated_at": "2014-11-14T01:08:38Z", + "pushed_at": "2014-11-14T01:09:45Z", + "git_url": "git://github.com/abarnhard/nand2tetris.git", + "ssh_url": "git@github.com:abarnhard/nand2tetris.git", + "clone_url": "https://github.com/abarnhard/nand2tetris.git", + "svn_url": "https://github.com/abarnhard/nand2tetris", + "homepage": null, + "size": 276, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 19907546, + "name": "nand2tetris", + "full_name": "beswarm/nand2tetris", + "owner": { + "login": "beswarm", + "id": 7619685, + "avatar_url": "https://avatars.githubusercontent.com/u/7619685?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/beswarm", + "html_url": "https://github.com/beswarm", + "followers_url": "https://api.github.com/users/beswarm/followers", + "following_url": "https://api.github.com/users/beswarm/following{/other_user}", + "gists_url": "https://api.github.com/users/beswarm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/beswarm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/beswarm/subscriptions", + "organizations_url": "https://api.github.com/users/beswarm/orgs", + "repos_url": "https://api.github.com/users/beswarm/repos", + "events_url": "https://api.github.com/users/beswarm/events{/privacy}", + "received_events_url": "https://api.github.com/users/beswarm/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/beswarm/nand2tetris", + "description": "self learning for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/beswarm/nand2tetris", + "forks_url": "https://api.github.com/repos/beswarm/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/beswarm/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/beswarm/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/beswarm/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/beswarm/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/beswarm/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/beswarm/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/beswarm/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/beswarm/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/beswarm/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/beswarm/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/beswarm/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/beswarm/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/beswarm/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/beswarm/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/beswarm/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/beswarm/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/beswarm/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/beswarm/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/beswarm/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/beswarm/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/beswarm/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/beswarm/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/beswarm/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/beswarm/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/beswarm/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/beswarm/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/beswarm/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/beswarm/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/beswarm/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/beswarm/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/beswarm/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/beswarm/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/beswarm/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/beswarm/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/beswarm/nand2tetris/deployments", + "created_at": "2014-05-18T09:51:06Z", + "updated_at": "2014-05-18T09:53:56Z", + "pushed_at": "2013-10-26T18:24:19Z", + "git_url": "git://github.com/beswarm/nand2tetris.git", + "ssh_url": "git@github.com:beswarm/nand2tetris.git", + "clone_url": "https://github.com/beswarm/nand2tetris.git", + "svn_url": "https://github.com/beswarm/nand2tetris", + "homepage": null, + "size": 260, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 20533659, + "name": "nand2tetris", + "full_name": "olijens/nand2tetris", + "owner": { + "login": "olijens", + "id": 3739987, + "avatar_url": "https://avatars.githubusercontent.com/u/3739987?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/olijens", + "html_url": "https://github.com/olijens", + "followers_url": "https://api.github.com/users/olijens/followers", + "following_url": "https://api.github.com/users/olijens/following{/other_user}", + "gists_url": "https://api.github.com/users/olijens/gists{/gist_id}", + "starred_url": "https://api.github.com/users/olijens/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/olijens/subscriptions", + "organizations_url": "https://api.github.com/users/olijens/orgs", + "repos_url": "https://api.github.com/users/olijens/repos", + "events_url": "https://api.github.com/users/olijens/events{/privacy}", + "received_events_url": "https://api.github.com/users/olijens/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/olijens/nand2tetris", + "description": "My nand2tetris projects", + "fork": false, + "url": "https://api.github.com/repos/olijens/nand2tetris", + "forks_url": "https://api.github.com/repos/olijens/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/olijens/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/olijens/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/olijens/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/olijens/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/olijens/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/olijens/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/olijens/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/olijens/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/olijens/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/olijens/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/olijens/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/olijens/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/olijens/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/olijens/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/olijens/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/olijens/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/olijens/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/olijens/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/olijens/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/olijens/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/olijens/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/olijens/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/olijens/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/olijens/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/olijens/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/olijens/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/olijens/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/olijens/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/olijens/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/olijens/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/olijens/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/olijens/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/olijens/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/olijens/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/olijens/nand2tetris/deployments", + "created_at": "2014-06-05T17:02:20Z", + "updated_at": "2014-06-29T23:49:37Z", + "pushed_at": "2014-06-29T23:49:37Z", + "git_url": "git://github.com/olijens/nand2tetris.git", + "ssh_url": "git@github.com:olijens/nand2tetris.git", + "clone_url": "https://github.com/olijens/nand2tetris.git", + "svn_url": "https://github.com/olijens/nand2tetris", + "homepage": null, + "size": 336, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 23079224, + "name": "Nand2Tetris", + "full_name": "jburnworth/Nand2Tetris", + "owner": { + "login": "jburnworth", + "id": 7218306, + "avatar_url": "https://avatars.githubusercontent.com/u/7218306?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jburnworth", + "html_url": "https://github.com/jburnworth", + "followers_url": "https://api.github.com/users/jburnworth/followers", + "following_url": "https://api.github.com/users/jburnworth/following{/other_user}", + "gists_url": "https://api.github.com/users/jburnworth/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jburnworth/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jburnworth/subscriptions", + "organizations_url": "https://api.github.com/users/jburnworth/orgs", + "repos_url": "https://api.github.com/users/jburnworth/repos", + "events_url": "https://api.github.com/users/jburnworth/events{/privacy}", + "received_events_url": "https://api.github.com/users/jburnworth/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jburnworth/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jburnworth/Nand2Tetris", + "forks_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jburnworth/Nand2Tetris/deployments", + "created_at": "2014-08-18T16:58:28Z", + "updated_at": "2015-05-05T04:21:43Z", + "pushed_at": "2015-05-05T04:21:42Z", + "git_url": "git://github.com/jburnworth/Nand2Tetris.git", + "ssh_url": "git@github.com:jburnworth/Nand2Tetris.git", + "clone_url": "https://github.com/jburnworth/Nand2Tetris.git", + "svn_url": "https://github.com/jburnworth/Nand2Tetris", + "homepage": null, + "size": 740, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 30916941, + "name": "nand2tetris", + "full_name": "nellsel/nand2tetris", + "owner": { + "login": "nellsel", + "id": 3777527, + "avatar_url": "https://avatars.githubusercontent.com/u/3777527?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nellsel", + "html_url": "https://github.com/nellsel", + "followers_url": "https://api.github.com/users/nellsel/followers", + "following_url": "https://api.github.com/users/nellsel/following{/other_user}", + "gists_url": "https://api.github.com/users/nellsel/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nellsel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nellsel/subscriptions", + "organizations_url": "https://api.github.com/users/nellsel/orgs", + "repos_url": "https://api.github.com/users/nellsel/repos", + "events_url": "https://api.github.com/users/nellsel/events{/privacy}", + "received_events_url": "https://api.github.com/users/nellsel/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nellsel/nand2tetris", + "description": "My work on the projects for the nand2tetris(http://www.nand2tetris.org/) course.", + "fork": false, + "url": "https://api.github.com/repos/nellsel/nand2tetris", + "forks_url": "https://api.github.com/repos/nellsel/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/nellsel/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nellsel/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nellsel/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/nellsel/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/nellsel/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/nellsel/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/nellsel/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/nellsel/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/nellsel/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/nellsel/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nellsel/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nellsel/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nellsel/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nellsel/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nellsel/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/nellsel/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/nellsel/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/nellsel/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/nellsel/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/nellsel/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nellsel/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nellsel/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nellsel/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nellsel/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/nellsel/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nellsel/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/nellsel/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nellsel/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/nellsel/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/nellsel/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nellsel/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nellsel/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nellsel/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/nellsel/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/nellsel/nand2tetris/deployments", + "created_at": "2015-02-17T12:56:09Z", + "updated_at": "2015-02-18T15:55:21Z", + "pushed_at": "2015-02-18T15:55:21Z", + "git_url": "git://github.com/nellsel/nand2tetris.git", + "ssh_url": "git@github.com:nellsel/nand2tetris.git", + "clone_url": "https://github.com/nellsel/nand2tetris.git", + "svn_url": "https://github.com/nellsel/nand2tetris", + "homepage": null, + "size": 336, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 29717469, + "name": "nand2tetris", + "full_name": "tomatrow/nand2tetris", + "owner": { + "login": "tomatrow", + "id": 2867210, + "avatar_url": "https://avatars.githubusercontent.com/u/2867210?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tomatrow", + "html_url": "https://github.com/tomatrow", + "followers_url": "https://api.github.com/users/tomatrow/followers", + "following_url": "https://api.github.com/users/tomatrow/following{/other_user}", + "gists_url": "https://api.github.com/users/tomatrow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tomatrow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tomatrow/subscriptions", + "organizations_url": "https://api.github.com/users/tomatrow/orgs", + "repos_url": "https://api.github.com/users/tomatrow/repos", + "events_url": "https://api.github.com/users/tomatrow/events{/privacy}", + "received_events_url": "https://api.github.com/users/tomatrow/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tomatrow/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/tomatrow/nand2tetris", + "forks_url": "https://api.github.com/repos/tomatrow/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tomatrow/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tomatrow/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tomatrow/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tomatrow/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tomatrow/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tomatrow/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tomatrow/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tomatrow/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tomatrow/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tomatrow/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tomatrow/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tomatrow/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tomatrow/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tomatrow/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tomatrow/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tomatrow/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tomatrow/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tomatrow/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tomatrow/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tomatrow/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tomatrow/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tomatrow/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tomatrow/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tomatrow/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tomatrow/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tomatrow/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tomatrow/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tomatrow/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tomatrow/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tomatrow/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tomatrow/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tomatrow/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tomatrow/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tomatrow/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tomatrow/nand2tetris/deployments", + "created_at": "2015-01-23T05:04:18Z", + "updated_at": "2015-04-12T20:24:41Z", + "pushed_at": "2015-04-12T20:24:40Z", + "git_url": "git://github.com/tomatrow/nand2tetris.git", + "ssh_url": "git@github.com:tomatrow/nand2tetris.git", + "clone_url": "https://github.com/tomatrow/nand2tetris.git", + "svn_url": "https://github.com/tomatrow/nand2tetris", + "homepage": null, + "size": 1108, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 31197103, + "name": "nand2tetris", + "full_name": "elitwin/nand2tetris", + "owner": { + "login": "elitwin", + "id": 85953, + "avatar_url": "https://avatars.githubusercontent.com/u/85953?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/elitwin", + "html_url": "https://github.com/elitwin", + "followers_url": "https://api.github.com/users/elitwin/followers", + "following_url": "https://api.github.com/users/elitwin/following{/other_user}", + "gists_url": "https://api.github.com/users/elitwin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/elitwin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/elitwin/subscriptions", + "organizations_url": "https://api.github.com/users/elitwin/orgs", + "repos_url": "https://api.github.com/users/elitwin/repos", + "events_url": "https://api.github.com/users/elitwin/events{/privacy}", + "received_events_url": "https://api.github.com/users/elitwin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/elitwin/nand2tetris", + "description": "Nand2Tetris code", + "fork": false, + "url": "https://api.github.com/repos/elitwin/nand2tetris", + "forks_url": "https://api.github.com/repos/elitwin/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/elitwin/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/elitwin/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/elitwin/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/elitwin/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/elitwin/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/elitwin/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/elitwin/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/elitwin/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/elitwin/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/elitwin/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/elitwin/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/elitwin/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/elitwin/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/elitwin/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/elitwin/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/elitwin/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/elitwin/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/elitwin/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/elitwin/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/elitwin/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/elitwin/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/elitwin/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/elitwin/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/elitwin/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/elitwin/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/elitwin/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/elitwin/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/elitwin/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/elitwin/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/elitwin/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/elitwin/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/elitwin/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/elitwin/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/elitwin/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/elitwin/nand2tetris/deployments", + "created_at": "2015-02-23T06:49:14Z", + "updated_at": "2015-03-13T19:09:19Z", + "pushed_at": "2015-03-13T19:11:32Z", + "git_url": "git://github.com/elitwin/nand2tetris.git", + "ssh_url": "git@github.com:elitwin/nand2tetris.git", + "clone_url": "https://github.com/elitwin/nand2tetris.git", + "svn_url": "https://github.com/elitwin/nand2tetris", + "homepage": null, + "size": 820, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 14589886, + "name": "nand2tetris", + "full_name": "zhengjiezxxy/nand2tetris", + "owner": { + "login": "zhengjiezxxy", + "id": 5151510, + "avatar_url": "https://avatars.githubusercontent.com/u/5151510?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zhengjiezxxy", + "html_url": "https://github.com/zhengjiezxxy", + "followers_url": "https://api.github.com/users/zhengjiezxxy/followers", + "following_url": "https://api.github.com/users/zhengjiezxxy/following{/other_user}", + "gists_url": "https://api.github.com/users/zhengjiezxxy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zhengjiezxxy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zhengjiezxxy/subscriptions", + "organizations_url": "https://api.github.com/users/zhengjiezxxy/orgs", + "repos_url": "https://api.github.com/users/zhengjiezxxy/repos", + "events_url": "https://api.github.com/users/zhengjiezxxy/events{/privacy}", + "received_events_url": "https://api.github.com/users/zhengjiezxxy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/zhengjiezxxy/nand2tetris", + "description": "nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris", + "forks_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/zhengjiezxxy/nand2tetris/deployments", + "created_at": "2013-11-21T14:34:11Z", + "updated_at": "2014-05-30T09:07:00Z", + "pushed_at": "2014-05-30T09:07:00Z", + "git_url": "git://github.com/zhengjiezxxy/nand2tetris.git", + "ssh_url": "git@github.com:zhengjiezxxy/nand2tetris.git", + "clone_url": "https://github.com/zhengjiezxxy/nand2tetris.git", + "svn_url": "https://github.com/zhengjiezxxy/nand2tetris", + "homepage": null, + "size": 1872, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 13423112, + "name": "nand-to-tetris", + "full_name": "unblevable/nand-to-tetris", + "owner": { + "login": "unblevable", + "id": 723755, + "avatar_url": "https://avatars.githubusercontent.com/u/723755?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/unblevable", + "html_url": "https://github.com/unblevable", + "followers_url": "https://api.github.com/users/unblevable/followers", + "following_url": "https://api.github.com/users/unblevable/following{/other_user}", + "gists_url": "https://api.github.com/users/unblevable/gists{/gist_id}", + "starred_url": "https://api.github.com/users/unblevable/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/unblevable/subscriptions", + "organizations_url": "https://api.github.com/users/unblevable/orgs", + "repos_url": "https://api.github.com/users/unblevable/repos", + "events_url": "https://api.github.com/users/unblevable/events{/privacy}", + "received_events_url": "https://api.github.com/users/unblevable/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/unblevable/nand-to-tetris", + "description": "a simple computer emulated from scratch", + "fork": false, + "url": "https://api.github.com/repos/unblevable/nand-to-tetris", + "forks_url": "https://api.github.com/repos/unblevable/nand-to-tetris/forks", + "keys_url": "https://api.github.com/repos/unblevable/nand-to-tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/unblevable/nand-to-tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/unblevable/nand-to-tetris/teams", + "hooks_url": "https://api.github.com/repos/unblevable/nand-to-tetris/hooks", + "issue_events_url": "https://api.github.com/repos/unblevable/nand-to-tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/unblevable/nand-to-tetris/events", + "assignees_url": "https://api.github.com/repos/unblevable/nand-to-tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/unblevable/nand-to-tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/unblevable/nand-to-tetris/tags", + "blobs_url": "https://api.github.com/repos/unblevable/nand-to-tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/unblevable/nand-to-tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/unblevable/nand-to-tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/unblevable/nand-to-tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/unblevable/nand-to-tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/unblevable/nand-to-tetris/languages", + "stargazers_url": "https://api.github.com/repos/unblevable/nand-to-tetris/stargazers", + "contributors_url": "https://api.github.com/repos/unblevable/nand-to-tetris/contributors", + "subscribers_url": "https://api.github.com/repos/unblevable/nand-to-tetris/subscribers", + "subscription_url": "https://api.github.com/repos/unblevable/nand-to-tetris/subscription", + "commits_url": "https://api.github.com/repos/unblevable/nand-to-tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/unblevable/nand-to-tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/unblevable/nand-to-tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/unblevable/nand-to-tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/unblevable/nand-to-tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/unblevable/nand-to-tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/unblevable/nand-to-tetris/merges", + "archive_url": "https://api.github.com/repos/unblevable/nand-to-tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/unblevable/nand-to-tetris/downloads", + "issues_url": "https://api.github.com/repos/unblevable/nand-to-tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/unblevable/nand-to-tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/unblevable/nand-to-tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/unblevable/nand-to-tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/unblevable/nand-to-tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/unblevable/nand-to-tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/unblevable/nand-to-tetris/deployments", + "created_at": "2013-10-08T19:17:06Z", + "updated_at": "2013-11-07T03:11:46Z", + "pushed_at": "2013-10-21T21:41:45Z", + "git_url": "git://github.com/unblevable/nand-to-tetris.git", + "ssh_url": "git@github.com:unblevable/nand-to-tetris.git", + "clone_url": "https://github.com/unblevable/nand-to-tetris.git", + "svn_url": "https://github.com/unblevable/nand-to-tetris", + "homepage": "", + "size": 196, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 13483873, + "name": "nand2tetris", + "full_name": "jakestambaugh/nand2tetris", + "owner": { + "login": "jakestambaugh", + "id": 1499738, + "avatar_url": "https://avatars.githubusercontent.com/u/1499738?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jakestambaugh", + "html_url": "https://github.com/jakestambaugh", + "followers_url": "https://api.github.com/users/jakestambaugh/followers", + "following_url": "https://api.github.com/users/jakestambaugh/following{/other_user}", + "gists_url": "https://api.github.com/users/jakestambaugh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jakestambaugh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jakestambaugh/subscriptions", + "organizations_url": "https://api.github.com/users/jakestambaugh/orgs", + "repos_url": "https://api.github.com/users/jakestambaugh/repos", + "events_url": "https://api.github.com/users/jakestambaugh/events{/privacy}", + "received_events_url": "https://api.github.com/users/jakestambaugh/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jakestambaugh/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/jakestambaugh/nand2tetris", + "forks_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jakestambaugh/nand2tetris/deployments", + "created_at": "2013-10-10T21:50:54Z", + "updated_at": "2013-10-10T21:52:33Z", + "pushed_at": "2013-10-10T21:52:29Z", + "git_url": "git://github.com/jakestambaugh/nand2tetris.git", + "ssh_url": "git@github.com:jakestambaugh/nand2tetris.git", + "clone_url": "https://github.com/jakestambaugh/nand2tetris.git", + "svn_url": "https://github.com/jakestambaugh/nand2tetris", + "homepage": null, + "size": 292, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 16288044, + "name": "nand2tetris", + "full_name": "byteofprash/nand2tetris", + "owner": { + "login": "byteofprash", + "id": 2134689, + "avatar_url": "https://avatars.githubusercontent.com/u/2134689?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/byteofprash", + "html_url": "https://github.com/byteofprash", + "followers_url": "https://api.github.com/users/byteofprash/followers", + "following_url": "https://api.github.com/users/byteofprash/following{/other_user}", + "gists_url": "https://api.github.com/users/byteofprash/gists{/gist_id}", + "starred_url": "https://api.github.com/users/byteofprash/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/byteofprash/subscriptions", + "organizations_url": "https://api.github.com/users/byteofprash/orgs", + "repos_url": "https://api.github.com/users/byteofprash/repos", + "events_url": "https://api.github.com/users/byteofprash/events{/privacy}", + "received_events_url": "https://api.github.com/users/byteofprash/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/byteofprash/nand2tetris", + "description": "My code files based on the book \"The elements of Computing systems\"", + "fork": false, + "url": "https://api.github.com/repos/byteofprash/nand2tetris", + "forks_url": "https://api.github.com/repos/byteofprash/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/byteofprash/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/byteofprash/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/byteofprash/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/byteofprash/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/byteofprash/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/byteofprash/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/byteofprash/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/byteofprash/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/byteofprash/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/byteofprash/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/byteofprash/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/byteofprash/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/byteofprash/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/byteofprash/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/byteofprash/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/byteofprash/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/byteofprash/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/byteofprash/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/byteofprash/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/byteofprash/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/byteofprash/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/byteofprash/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/byteofprash/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/byteofprash/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/byteofprash/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/byteofprash/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/byteofprash/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/byteofprash/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/byteofprash/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/byteofprash/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/byteofprash/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/byteofprash/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/byteofprash/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/byteofprash/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/byteofprash/nand2tetris/deployments", + "created_at": "2014-01-27T18:23:39Z", + "updated_at": "2014-01-27T18:30:08Z", + "pushed_at": "2014-01-27T18:30:04Z", + "git_url": "git://github.com/byteofprash/nand2tetris.git", + "ssh_url": "git@github.com:byteofprash/nand2tetris.git", + "clone_url": "https://github.com/byteofprash/nand2tetris.git", + "svn_url": "https://github.com/byteofprash/nand2tetris", + "homepage": null, + "size": 660, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 9406051, + "name": "nand2tetris", + "full_name": "ankushgoyal/nand2tetris", + "owner": { + "login": "ankushgoyal", + "id": 467655, + "avatar_url": "https://avatars.githubusercontent.com/u/467655?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ankushgoyal", + "html_url": "https://github.com/ankushgoyal", + "followers_url": "https://api.github.com/users/ankushgoyal/followers", + "following_url": "https://api.github.com/users/ankushgoyal/following{/other_user}", + "gists_url": "https://api.github.com/users/ankushgoyal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankushgoyal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankushgoyal/subscriptions", + "organizations_url": "https://api.github.com/users/ankushgoyal/orgs", + "repos_url": "https://api.github.com/users/ankushgoyal/repos", + "events_url": "https://api.github.com/users/ankushgoyal/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankushgoyal/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ankushgoyal/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/ankushgoyal/nand2tetris", + "forks_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ankushgoyal/nand2tetris/deployments", + "created_at": "2013-04-12T23:57:20Z", + "updated_at": "2013-10-02T15:46:53Z", + "pushed_at": "2013-04-13T06:50:08Z", + "git_url": "git://github.com/ankushgoyal/nand2tetris.git", + "ssh_url": "git@github.com:ankushgoyal/nand2tetris.git", + "clone_url": "https://github.com/ankushgoyal/nand2tetris.git", + "svn_url": "https://github.com/ankushgoyal/nand2tetris", + "homepage": null, + "size": 600, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 9618948, + "name": "nand2tetris", + "full_name": "bleach/nand2tetris", + "owner": { + "login": "bleach", + "id": 693486, + "avatar_url": "https://avatars.githubusercontent.com/u/693486?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bleach", + "html_url": "https://github.com/bleach", + "followers_url": "https://api.github.com/users/bleach/followers", + "following_url": "https://api.github.com/users/bleach/following{/other_user}", + "gists_url": "https://api.github.com/users/bleach/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bleach/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bleach/subscriptions", + "organizations_url": "https://api.github.com/users/bleach/orgs", + "repos_url": "https://api.github.com/users/bleach/repos", + "events_url": "https://api.github.com/users/bleach/events{/privacy}", + "received_events_url": "https://api.github.com/users/bleach/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bleach/nand2tetris", + "description": "Projects from the Elements of Computing Systems: http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/bleach/nand2tetris", + "forks_url": "https://api.github.com/repos/bleach/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bleach/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bleach/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bleach/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bleach/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bleach/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bleach/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bleach/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bleach/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bleach/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bleach/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bleach/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bleach/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bleach/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bleach/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bleach/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bleach/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bleach/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bleach/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bleach/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bleach/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bleach/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bleach/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bleach/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bleach/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bleach/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bleach/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bleach/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bleach/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bleach/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bleach/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bleach/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bleach/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bleach/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bleach/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bleach/nand2tetris/deployments", + "created_at": "2013-04-23T08:51:31Z", + "updated_at": "2014-01-23T10:39:24Z", + "pushed_at": "2013-04-30T11:50:53Z", + "git_url": "git://github.com/bleach/nand2tetris.git", + "ssh_url": "git@github.com:bleach/nand2tetris.git", + "clone_url": "https://github.com/bleach/nand2tetris.git", + "svn_url": "https://github.com/bleach/nand2tetris", + "homepage": null, + "size": 628, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 9916479, + "name": "nand2tetris", + "full_name": "beppenmk/nand2tetris", + "owner": { + "login": "beppenmk", + "id": 4367213, + "avatar_url": "https://avatars.githubusercontent.com/u/4367213?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/beppenmk", + "html_url": "https://github.com/beppenmk", + "followers_url": "https://api.github.com/users/beppenmk/followers", + "following_url": "https://api.github.com/users/beppenmk/following{/other_user}", + "gists_url": "https://api.github.com/users/beppenmk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/beppenmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/beppenmk/subscriptions", + "organizations_url": "https://api.github.com/users/beppenmk/orgs", + "repos_url": "https://api.github.com/users/beppenmk/repos", + "events_url": "https://api.github.com/users/beppenmk/events{/privacy}", + "received_events_url": "https://api.github.com/users/beppenmk/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/beppenmk/nand2tetris", + "description": "nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/beppenmk/nand2tetris", + "forks_url": "https://api.github.com/repos/beppenmk/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/beppenmk/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/beppenmk/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/beppenmk/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/beppenmk/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/beppenmk/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/beppenmk/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/beppenmk/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/beppenmk/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/beppenmk/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/beppenmk/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/beppenmk/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/beppenmk/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/beppenmk/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/beppenmk/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/beppenmk/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/beppenmk/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/beppenmk/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/beppenmk/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/beppenmk/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/beppenmk/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/beppenmk/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/beppenmk/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/beppenmk/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/beppenmk/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/beppenmk/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/beppenmk/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/beppenmk/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/beppenmk/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/beppenmk/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/beppenmk/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/beppenmk/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/beppenmk/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/beppenmk/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/beppenmk/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/beppenmk/nand2tetris/deployments", + "created_at": "2013-05-07T16:32:38Z", + "updated_at": "2013-12-26T03:29:48Z", + "pushed_at": "2013-05-21T07:14:30Z", + "git_url": "git://github.com/beppenmk/nand2tetris.git", + "ssh_url": "git@github.com:beppenmk/nand2tetris.git", + "clone_url": "https://github.com/beppenmk/nand2tetris.git", + "svn_url": "https://github.com/beppenmk/nand2tetris", + "homepage": null, + "size": 1404, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 7711117, + "name": "Nand2tetris", + "full_name": "LittleMy/Nand2tetris", + "owner": { + "login": "LittleMy", + "id": 3317927, + "avatar_url": "https://avatars.githubusercontent.com/u/3317927?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/LittleMy", + "html_url": "https://github.com/LittleMy", + "followers_url": "https://api.github.com/users/LittleMy/followers", + "following_url": "https://api.github.com/users/LittleMy/following{/other_user}", + "gists_url": "https://api.github.com/users/LittleMy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/LittleMy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/LittleMy/subscriptions", + "organizations_url": "https://api.github.com/users/LittleMy/orgs", + "repos_url": "https://api.github.com/users/LittleMy/repos", + "events_url": "https://api.github.com/users/LittleMy/events{/privacy}", + "received_events_url": "https://api.github.com/users/LittleMy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/LittleMy/Nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/LittleMy/Nand2tetris", + "forks_url": "https://api.github.com/repos/LittleMy/Nand2tetris/forks", + "keys_url": "https://api.github.com/repos/LittleMy/Nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/LittleMy/Nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/LittleMy/Nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/LittleMy/Nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/LittleMy/Nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/LittleMy/Nand2tetris/events", + "assignees_url": "https://api.github.com/repos/LittleMy/Nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/LittleMy/Nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/LittleMy/Nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/LittleMy/Nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/LittleMy/Nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/LittleMy/Nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/LittleMy/Nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/LittleMy/Nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/LittleMy/Nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/LittleMy/Nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/LittleMy/Nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/LittleMy/Nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/LittleMy/Nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/LittleMy/Nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/LittleMy/Nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/LittleMy/Nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/LittleMy/Nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/LittleMy/Nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/LittleMy/Nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/LittleMy/Nand2tetris/merges", + "archive_url": "https://api.github.com/repos/LittleMy/Nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/LittleMy/Nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/LittleMy/Nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/LittleMy/Nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/LittleMy/Nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/LittleMy/Nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/LittleMy/Nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/LittleMy/Nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/LittleMy/Nand2tetris/deployments", + "created_at": "2013-01-20T01:00:33Z", + "updated_at": "2013-11-26T16:57:48Z", + "pushed_at": "2013-08-19T00:56:29Z", + "git_url": "git://github.com/LittleMy/Nand2tetris.git", + "ssh_url": "git@github.com:LittleMy/Nand2tetris.git", + "clone_url": "https://github.com/LittleMy/Nand2tetris.git", + "svn_url": "https://github.com/LittleMy/Nand2tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 6961973, + "name": "nand2tetris", + "full_name": "nickcadams/nand2tetris", + "owner": { + "login": "nickcadams", + "id": 1253510, + "avatar_url": "https://avatars.githubusercontent.com/u/1253510?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nickcadams", + "html_url": "https://github.com/nickcadams", + "followers_url": "https://api.github.com/users/nickcadams/followers", + "following_url": "https://api.github.com/users/nickcadams/following{/other_user}", + "gists_url": "https://api.github.com/users/nickcadams/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nickcadams/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nickcadams/subscriptions", + "organizations_url": "https://api.github.com/users/nickcadams/orgs", + "repos_url": "https://api.github.com/users/nickcadams/repos", + "events_url": "https://api.github.com/users/nickcadams/events{/privacy}", + "received_events_url": "https://api.github.com/users/nickcadams/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nickcadams/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/nickcadams/nand2tetris", + "forks_url": "https://api.github.com/repos/nickcadams/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/nickcadams/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nickcadams/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nickcadams/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/nickcadams/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/nickcadams/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/nickcadams/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/nickcadams/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/nickcadams/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/nickcadams/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/nickcadams/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nickcadams/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nickcadams/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nickcadams/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nickcadams/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nickcadams/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/nickcadams/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/nickcadams/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/nickcadams/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/nickcadams/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/nickcadams/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nickcadams/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nickcadams/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nickcadams/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nickcadams/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/nickcadams/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nickcadams/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/nickcadams/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nickcadams/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/nickcadams/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/nickcadams/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nickcadams/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nickcadams/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nickcadams/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/nickcadams/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/nickcadams/nand2tetris/deployments", + "created_at": "2012-12-02T01:30:10Z", + "updated_at": "2013-12-09T05:26:35Z", + "pushed_at": "2013-02-09T19:03:03Z", + "git_url": "git://github.com/nickcadams/nand2tetris.git", + "ssh_url": "git@github.com:nickcadams/nand2tetris.git", + "clone_url": "https://github.com/nickcadams/nand2tetris.git", + "svn_url": "https://github.com/nickcadams/nand2tetris", + "homepage": null, + "size": 1308, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 7817680, + "name": "nand2tetris", + "full_name": "krolft/nand2tetris", + "owner": { + "login": "krolft", + "id": 1170229, + "avatar_url": "https://avatars.githubusercontent.com/u/1170229?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/krolft", + "html_url": "https://github.com/krolft", + "followers_url": "https://api.github.com/users/krolft/followers", + "following_url": "https://api.github.com/users/krolft/following{/other_user}", + "gists_url": "https://api.github.com/users/krolft/gists{/gist_id}", + "starred_url": "https://api.github.com/users/krolft/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/krolft/subscriptions", + "organizations_url": "https://api.github.com/users/krolft/orgs", + "repos_url": "https://api.github.com/users/krolft/repos", + "events_url": "https://api.github.com/users/krolft/events{/privacy}", + "received_events_url": "https://api.github.com/users/krolft/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/krolft/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/krolft/nand2tetris", + "forks_url": "https://api.github.com/repos/krolft/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/krolft/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/krolft/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/krolft/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/krolft/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/krolft/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/krolft/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/krolft/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/krolft/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/krolft/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/krolft/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/krolft/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/krolft/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/krolft/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/krolft/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/krolft/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/krolft/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/krolft/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/krolft/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/krolft/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/krolft/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/krolft/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/krolft/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/krolft/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/krolft/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/krolft/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/krolft/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/krolft/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/krolft/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/krolft/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/krolft/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/krolft/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/krolft/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/krolft/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/krolft/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/krolft/nand2tetris/deployments", + "created_at": "2013-01-25T09:55:27Z", + "updated_at": "2013-12-07T18:37:58Z", + "pushed_at": "2013-01-27T21:15:05Z", + "git_url": "git://github.com/krolft/nand2tetris.git", + "ssh_url": "git@github.com:krolft/nand2tetris.git", + "clone_url": "https://github.com/krolft/nand2tetris.git", + "svn_url": "https://github.com/krolft/nand2tetris", + "homepage": null, + "size": 2132, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 18025032, + "name": "nand2tetris", + "full_name": "ixv/nand2tetris", + "owner": { + "login": "ixv", + "id": 4741759, + "avatar_url": "https://avatars.githubusercontent.com/u/4741759?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ixv", + "html_url": "https://github.com/ixv", + "followers_url": "https://api.github.com/users/ixv/followers", + "following_url": "https://api.github.com/users/ixv/following{/other_user}", + "gists_url": "https://api.github.com/users/ixv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ixv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ixv/subscriptions", + "organizations_url": "https://api.github.com/users/ixv/orgs", + "repos_url": "https://api.github.com/users/ixv/repos", + "events_url": "https://api.github.com/users/ixv/events{/privacy}", + "received_events_url": "https://api.github.com/users/ixv/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ixv/nand2tetris", + "description": "my solutions to the nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/ixv/nand2tetris", + "forks_url": "https://api.github.com/repos/ixv/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ixv/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ixv/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ixv/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ixv/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ixv/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ixv/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ixv/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ixv/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ixv/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ixv/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ixv/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ixv/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ixv/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ixv/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ixv/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ixv/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ixv/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ixv/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ixv/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ixv/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ixv/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ixv/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ixv/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ixv/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ixv/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ixv/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ixv/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ixv/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ixv/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ixv/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ixv/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ixv/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ixv/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ixv/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ixv/nand2tetris/deployments", + "created_at": "2014-03-23T02:40:08Z", + "updated_at": "2014-07-06T00:12:26Z", + "pushed_at": "2014-07-07T03:23:45Z", + "git_url": "git://github.com/ixv/nand2tetris.git", + "ssh_url": "git@github.com:ixv/nand2tetris.git", + "clone_url": "https://github.com/ixv/nand2tetris.git", + "svn_url": "https://github.com/ixv/nand2tetris", + "homepage": null, + "size": 176, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 37437889, + "name": "Nand-to-tetris-project", + "full_name": "codybraun/Nand-to-tetris-project", + "owner": { + "login": "codybraun", + "id": 7637436, + "avatar_url": "https://avatars.githubusercontent.com/u/7637436?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/codybraun", + "html_url": "https://github.com/codybraun", + "followers_url": "https://api.github.com/users/codybraun/followers", + "following_url": "https://api.github.com/users/codybraun/following{/other_user}", + "gists_url": "https://api.github.com/users/codybraun/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codybraun/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codybraun/subscriptions", + "organizations_url": "https://api.github.com/users/codybraun/orgs", + "repos_url": "https://api.github.com/users/codybraun/repos", + "events_url": "https://api.github.com/users/codybraun/events{/privacy}", + "received_events_url": "https://api.github.com/users/codybraun/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/codybraun/Nand-to-tetris-project", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project", + "forks_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/forks", + "keys_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/teams", + "hooks_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/hooks", + "issue_events_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/issues/events{/number}", + "events_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/events", + "assignees_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/assignees{/user}", + "branches_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/branches{/branch}", + "tags_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/tags", + "blobs_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/statuses/{sha}", + "languages_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/languages", + "stargazers_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/stargazers", + "contributors_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/contributors", + "subscribers_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/subscribers", + "subscription_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/subscription", + "commits_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/contents/{+path}", + "compare_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/merges", + "archive_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/downloads", + "issues_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/issues{/number}", + "pulls_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/pulls{/number}", + "milestones_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/milestones{/number}", + "notifications_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/labels{/name}", + "releases_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/releases{/id}", + "deployments_url": "https://api.github.com/repos/codybraun/Nand-to-tetris-project/deployments", + "created_at": "2015-06-15T01:51:54Z", + "updated_at": "2015-06-15T01:54:31Z", + "pushed_at": "2015-06-15T01:54:29Z", + "git_url": "git://github.com/codybraun/Nand-to-tetris-project.git", + "ssh_url": "git@github.com:codybraun/Nand-to-tetris-project.git", + "clone_url": "https://github.com/codybraun/Nand-to-tetris-project.git", + "svn_url": "https://github.com/codybraun/Nand-to-tetris-project", + "homepage": null, + "size": 8672, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 38372774, + "name": "nand2tetris", + "full_name": "ccdwyer/nand2tetris", + "owner": { + "login": "ccdwyer", + "id": 1327868, + "avatar_url": "https://avatars.githubusercontent.com/u/1327868?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ccdwyer", + "html_url": "https://github.com/ccdwyer", + "followers_url": "https://api.github.com/users/ccdwyer/followers", + "following_url": "https://api.github.com/users/ccdwyer/following{/other_user}", + "gists_url": "https://api.github.com/users/ccdwyer/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ccdwyer/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ccdwyer/subscriptions", + "organizations_url": "https://api.github.com/users/ccdwyer/orgs", + "repos_url": "https://api.github.com/users/ccdwyer/repos", + "events_url": "https://api.github.com/users/ccdwyer/events{/privacy}", + "received_events_url": "https://api.github.com/users/ccdwyer/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ccdwyer/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/ccdwyer/nand2tetris", + "forks_url": "https://api.github.com/repos/ccdwyer/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ccdwyer/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ccdwyer/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ccdwyer/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ccdwyer/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ccdwyer/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ccdwyer/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ccdwyer/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ccdwyer/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ccdwyer/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ccdwyer/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ccdwyer/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ccdwyer/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ccdwyer/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ccdwyer/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ccdwyer/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ccdwyer/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ccdwyer/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ccdwyer/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ccdwyer/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ccdwyer/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ccdwyer/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ccdwyer/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ccdwyer/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ccdwyer/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ccdwyer/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ccdwyer/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ccdwyer/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ccdwyer/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ccdwyer/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ccdwyer/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ccdwyer/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ccdwyer/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ccdwyer/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ccdwyer/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ccdwyer/nand2tetris/deployments", + "created_at": "2015-07-01T13:32:12Z", + "updated_at": "2015-07-01T13:32:36Z", + "pushed_at": "2015-07-01T18:39:37Z", + "git_url": "git://github.com/ccdwyer/nand2tetris.git", + "ssh_url": "git@github.com:ccdwyer/nand2tetris.git", + "clone_url": "https://github.com/ccdwyer/nand2tetris.git", + "svn_url": "https://github.com/ccdwyer/nand2tetris", + "homepage": null, + "size": 312, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 38515120, + "name": "Nand2Tetris", + "full_name": "robertpd/Nand2Tetris", + "owner": { + "login": "robertpd", + "id": 921456, + "avatar_url": "https://avatars.githubusercontent.com/u/921456?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/robertpd", + "html_url": "https://github.com/robertpd", + "followers_url": "https://api.github.com/users/robertpd/followers", + "following_url": "https://api.github.com/users/robertpd/following{/other_user}", + "gists_url": "https://api.github.com/users/robertpd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robertpd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robertpd/subscriptions", + "organizations_url": "https://api.github.com/users/robertpd/orgs", + "repos_url": "https://api.github.com/users/robertpd/repos", + "events_url": "https://api.github.com/users/robertpd/events{/privacy}", + "received_events_url": "https://api.github.com/users/robertpd/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/robertpd/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/robertpd/Nand2Tetris", + "forks_url": "https://api.github.com/repos/robertpd/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/robertpd/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/robertpd/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/robertpd/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/robertpd/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/robertpd/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/robertpd/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/robertpd/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/robertpd/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/robertpd/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/robertpd/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/robertpd/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/robertpd/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/robertpd/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/robertpd/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/robertpd/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/robertpd/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/robertpd/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/robertpd/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/robertpd/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/robertpd/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/robertpd/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/robertpd/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/robertpd/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/robertpd/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/robertpd/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/robertpd/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/robertpd/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/robertpd/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/robertpd/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/robertpd/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/robertpd/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/robertpd/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/robertpd/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/robertpd/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/robertpd/Nand2Tetris/deployments", + "created_at": "2015-07-04T00:06:36Z", + "updated_at": "2015-07-04T00:35:51Z", + "pushed_at": "2015-07-10T23:37:30Z", + "git_url": "git://github.com/robertpd/Nand2Tetris.git", + "ssh_url": "git@github.com:robertpd/Nand2Tetris.git", + "clone_url": "https://github.com/robertpd/Nand2Tetris.git", + "svn_url": "https://github.com/robertpd/Nand2Tetris", + "homepage": null, + "size": 300, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 38585772, + "name": "nand2tetris", + "full_name": "jgopel/nand2tetris", + "owner": { + "login": "jgopel", + "id": 1779681, + "avatar_url": "https://avatars.githubusercontent.com/u/1779681?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jgopel", + "html_url": "https://github.com/jgopel", + "followers_url": "https://api.github.com/users/jgopel/followers", + "following_url": "https://api.github.com/users/jgopel/following{/other_user}", + "gists_url": "https://api.github.com/users/jgopel/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jgopel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jgopel/subscriptions", + "organizations_url": "https://api.github.com/users/jgopel/orgs", + "repos_url": "https://api.github.com/users/jgopel/repos", + "events_url": "https://api.github.com/users/jgopel/events{/privacy}", + "received_events_url": "https://api.github.com/users/jgopel/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jgopel/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jgopel/nand2tetris", + "forks_url": "https://api.github.com/repos/jgopel/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jgopel/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jgopel/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jgopel/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jgopel/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jgopel/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jgopel/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jgopel/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jgopel/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jgopel/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jgopel/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jgopel/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jgopel/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jgopel/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jgopel/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jgopel/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jgopel/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jgopel/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jgopel/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jgopel/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jgopel/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jgopel/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jgopel/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jgopel/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jgopel/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jgopel/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jgopel/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jgopel/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jgopel/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jgopel/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jgopel/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jgopel/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jgopel/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jgopel/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jgopel/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jgopel/nand2tetris/deployments", + "created_at": "2015-07-05T22:02:17Z", + "updated_at": "2015-07-05T22:08:45Z", + "pushed_at": "2015-07-27T19:26:31Z", + "git_url": "git://github.com/jgopel/nand2tetris.git", + "ssh_url": "git@github.com:jgopel/nand2tetris.git", + "clone_url": "https://github.com/jgopel/nand2tetris.git", + "svn_url": "https://github.com/jgopel/nand2tetris", + "homepage": null, + "size": 444, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 36733775, + "name": "nand2tetris", + "full_name": "kaishuu0123/nand2tetris", + "owner": { + "login": "kaishuu0123", + "id": 1567423, + "avatar_url": "https://avatars.githubusercontent.com/u/1567423?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kaishuu0123", + "html_url": "https://github.com/kaishuu0123", + "followers_url": "https://api.github.com/users/kaishuu0123/followers", + "following_url": "https://api.github.com/users/kaishuu0123/following{/other_user}", + "gists_url": "https://api.github.com/users/kaishuu0123/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kaishuu0123/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kaishuu0123/subscriptions", + "organizations_url": "https://api.github.com/users/kaishuu0123/orgs", + "repos_url": "https://api.github.com/users/kaishuu0123/repos", + "events_url": "https://api.github.com/users/kaishuu0123/events{/privacy}", + "received_events_url": "https://api.github.com/users/kaishuu0123/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kaishuu0123/nand2tetris", + "description": "Computer implementation as described in \"The Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/kaishuu0123/nand2tetris", + "forks_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kaishuu0123/nand2tetris/deployments", + "created_at": "2015-06-02T13:08:08Z", + "updated_at": "2015-06-02T13:10:17Z", + "pushed_at": "2015-06-18T14:22:45Z", + "git_url": "git://github.com/kaishuu0123/nand2tetris.git", + "ssh_url": "git@github.com:kaishuu0123/nand2tetris.git", + "clone_url": "https://github.com/kaishuu0123/nand2tetris.git", + "svn_url": "https://github.com/kaishuu0123/nand2tetris", + "homepage": null, + "size": 324, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 35976465, + "name": "Nand2Tetris", + "full_name": "skfarhat/Nand2Tetris", + "owner": { + "login": "skfarhat", + "id": 3952243, + "avatar_url": "https://avatars.githubusercontent.com/u/3952243?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/skfarhat", + "html_url": "https://github.com/skfarhat", + "followers_url": "https://api.github.com/users/skfarhat/followers", + "following_url": "https://api.github.com/users/skfarhat/following{/other_user}", + "gists_url": "https://api.github.com/users/skfarhat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/skfarhat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/skfarhat/subscriptions", + "organizations_url": "https://api.github.com/users/skfarhat/orgs", + "repos_url": "https://api.github.com/users/skfarhat/repos", + "events_url": "https://api.github.com/users/skfarhat/events{/privacy}", + "received_events_url": "https://api.github.com/users/skfarhat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/skfarhat/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/skfarhat/Nand2Tetris", + "forks_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/skfarhat/Nand2Tetris/deployments", + "created_at": "2015-05-20T21:59:24Z", + "updated_at": "2015-05-20T22:23:02Z", + "pushed_at": "2015-05-20T22:22:54Z", + "git_url": "git://github.com/skfarhat/Nand2Tetris.git", + "ssh_url": "git@github.com:skfarhat/Nand2Tetris.git", + "clone_url": "https://github.com/skfarhat/Nand2Tetris.git", + "svn_url": "https://github.com/skfarhat/Nand2Tetris", + "homepage": null, + "size": 232, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34077620, + "name": "Nand2Tetris", + "full_name": "ashumeow/Nand2Tetris", + "owner": { + "login": "ashumeow", + "id": 5597047, + "avatar_url": "https://avatars.githubusercontent.com/u/5597047?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ashumeow", + "html_url": "https://github.com/ashumeow", + "followers_url": "https://api.github.com/users/ashumeow/followers", + "following_url": "https://api.github.com/users/ashumeow/following{/other_user}", + "gists_url": "https://api.github.com/users/ashumeow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ashumeow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ashumeow/subscriptions", + "organizations_url": "https://api.github.com/users/ashumeow/orgs", + "repos_url": "https://api.github.com/users/ashumeow/repos", + "events_url": "https://api.github.com/users/ashumeow/events{/privacy}", + "received_events_url": "https://api.github.com/users/ashumeow/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ashumeow/Nand2Tetris", + "description": "Building hardware modules on a computer using Hardware Description Language (HDL) with the help of Hardware Simulator, CPU Emulator and Assembler. A 7-week course journey in Coursera provided by The Hebrew University of Jerusalem.", + "fork": false, + "url": "https://api.github.com/repos/ashumeow/Nand2Tetris", + "forks_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ashumeow/Nand2Tetris/deployments", + "created_at": "2015-04-16T20:02:05Z", + "updated_at": "2015-06-05T06:59:27Z", + "pushed_at": "2015-06-09T14:47:06Z", + "git_url": "git://github.com/ashumeow/Nand2Tetris.git", + "ssh_url": "git@github.com:ashumeow/Nand2Tetris.git", + "clone_url": "https://github.com/ashumeow/Nand2Tetris.git", + "svn_url": "https://github.com/ashumeow/Nand2Tetris", + "homepage": null, + "size": 711, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34045171, + "name": "nand2tetris", + "full_name": "hgye/nand2tetris", + "owner": { + "login": "hgye", + "id": 497873, + "avatar_url": "https://avatars.githubusercontent.com/u/497873?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hgye", + "html_url": "https://github.com/hgye", + "followers_url": "https://api.github.com/users/hgye/followers", + "following_url": "https://api.github.com/users/hgye/following{/other_user}", + "gists_url": "https://api.github.com/users/hgye/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hgye/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hgye/subscriptions", + "organizations_url": "https://api.github.com/users/hgye/orgs", + "repos_url": "https://api.github.com/users/hgye/repos", + "events_url": "https://api.github.com/users/hgye/events{/privacy}", + "received_events_url": "https://api.github.com/users/hgye/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hgye/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/hgye/nand2tetris", + "forks_url": "https://api.github.com/repos/hgye/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/hgye/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hgye/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hgye/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/hgye/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/hgye/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/hgye/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/hgye/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/hgye/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/hgye/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/hgye/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hgye/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hgye/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hgye/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hgye/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hgye/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/hgye/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/hgye/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/hgye/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/hgye/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/hgye/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hgye/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hgye/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hgye/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hgye/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/hgye/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hgye/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/hgye/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hgye/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/hgye/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/hgye/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hgye/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hgye/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hgye/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/hgye/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/hgye/nand2tetris/deployments", + "created_at": "2015-04-16T08:58:16Z", + "updated_at": "2015-05-08T09:33:28Z", + "pushed_at": "2015-06-28T12:19:28Z", + "git_url": "git://github.com/hgye/nand2tetris.git", + "ssh_url": "git@github.com:hgye/nand2tetris.git", + "clone_url": "https://github.com/hgye/nand2tetris.git", + "svn_url": "https://github.com/hgye/nand2tetris", + "homepage": null, + "size": 692, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34185965, + "name": "nand2tetris", + "full_name": "sanp/nand2tetris", + "owner": { + "login": "sanp", + "id": 2717548, + "avatar_url": "https://avatars.githubusercontent.com/u/2717548?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sanp", + "html_url": "https://github.com/sanp", + "followers_url": "https://api.github.com/users/sanp/followers", + "following_url": "https://api.github.com/users/sanp/following{/other_user}", + "gists_url": "https://api.github.com/users/sanp/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sanp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sanp/subscriptions", + "organizations_url": "https://api.github.com/users/sanp/orgs", + "repos_url": "https://api.github.com/users/sanp/repos", + "events_url": "https://api.github.com/users/sanp/events{/privacy}", + "received_events_url": "https://api.github.com/users/sanp/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sanp/nand2tetris", + "description": "Problem sets for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/sanp/nand2tetris", + "forks_url": "https://api.github.com/repos/sanp/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/sanp/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sanp/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sanp/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/sanp/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/sanp/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/sanp/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/sanp/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/sanp/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/sanp/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/sanp/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sanp/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sanp/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sanp/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sanp/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sanp/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/sanp/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/sanp/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/sanp/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/sanp/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/sanp/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sanp/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sanp/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sanp/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sanp/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/sanp/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sanp/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/sanp/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sanp/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/sanp/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/sanp/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sanp/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sanp/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sanp/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/sanp/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/sanp/nand2tetris/deployments", + "created_at": "2015-04-18T22:56:16Z", + "updated_at": "2015-05-04T15:50:45Z", + "pushed_at": "2015-05-04T15:50:44Z", + "git_url": "git://github.com/sanp/nand2tetris.git", + "ssh_url": "git@github.com:sanp/nand2tetris.git", + "clone_url": "https://github.com/sanp/nand2tetris.git", + "svn_url": "https://github.com/sanp/nand2tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34227223, + "name": "nand2tetris", + "full_name": "ecxr/nand2tetris", + "owner": { + "login": "ecxr", + "id": 2193686, + "avatar_url": "https://avatars.githubusercontent.com/u/2193686?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ecxr", + "html_url": "https://github.com/ecxr", + "followers_url": "https://api.github.com/users/ecxr/followers", + "following_url": "https://api.github.com/users/ecxr/following{/other_user}", + "gists_url": "https://api.github.com/users/ecxr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ecxr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ecxr/subscriptions", + "organizations_url": "https://api.github.com/users/ecxr/orgs", + "repos_url": "https://api.github.com/users/ecxr/repos", + "events_url": "https://api.github.com/users/ecxr/events{/privacy}", + "received_events_url": "https://api.github.com/users/ecxr/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ecxr/nand2tetris", + "description": "Coursera nand2tetris Spring 2015", + "fork": false, + "url": "https://api.github.com/repos/ecxr/nand2tetris", + "forks_url": "https://api.github.com/repos/ecxr/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ecxr/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ecxr/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ecxr/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ecxr/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ecxr/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ecxr/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ecxr/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ecxr/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ecxr/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ecxr/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ecxr/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ecxr/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ecxr/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ecxr/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ecxr/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ecxr/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ecxr/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ecxr/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ecxr/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ecxr/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ecxr/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ecxr/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ecxr/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ecxr/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ecxr/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ecxr/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ecxr/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ecxr/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ecxr/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ecxr/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ecxr/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ecxr/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ecxr/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ecxr/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ecxr/nand2tetris/deployments", + "created_at": "2015-04-19T22:42:32Z", + "updated_at": "2015-04-20T15:33:42Z", + "pushed_at": "2015-05-31T18:17:19Z", + "git_url": "git://github.com/ecxr/nand2tetris.git", + "ssh_url": "git@github.com:ecxr/nand2tetris.git", + "clone_url": "https://github.com/ecxr/nand2tetris.git", + "svn_url": "https://github.com/ecxr/nand2tetris", + "homepage": null, + "size": 356, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34174226, + "name": "nand2tetris", + "full_name": "Olical/nand2tetris", + "owner": { + "login": "Olical", + "id": 315229, + "avatar_url": "https://avatars.githubusercontent.com/u/315229?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Olical", + "html_url": "https://github.com/Olical", + "followers_url": "https://api.github.com/users/Olical/followers", + "following_url": "https://api.github.com/users/Olical/following{/other_user}", + "gists_url": "https://api.github.com/users/Olical/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Olical/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Olical/subscriptions", + "organizations_url": "https://api.github.com/users/Olical/orgs", + "repos_url": "https://api.github.com/users/Olical/repos", + "events_url": "https://api.github.com/users/Olical/events{/privacy}", + "received_events_url": "https://api.github.com/users/Olical/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Olical/nand2tetris", + "description": "My workings for book / project. Don't copy them for the Coursera course!", + "fork": false, + "url": "https://api.github.com/repos/Olical/nand2tetris", + "forks_url": "https://api.github.com/repos/Olical/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Olical/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Olical/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Olical/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Olical/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Olical/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Olical/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Olical/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Olical/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Olical/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Olical/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Olical/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Olical/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Olical/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Olical/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Olical/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Olical/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Olical/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Olical/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Olical/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Olical/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Olical/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Olical/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Olical/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Olical/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Olical/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Olical/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Olical/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Olical/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Olical/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Olical/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Olical/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Olical/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Olical/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Olical/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Olical/nand2tetris/deployments", + "created_at": "2015-04-18T16:55:44Z", + "updated_at": "2015-05-18T21:42:59Z", + "pushed_at": "2015-05-18T23:31:57Z", + "git_url": "git://github.com/Olical/nand2tetris.git", + "ssh_url": "git@github.com:Olical/nand2tetris.git", + "clone_url": "https://github.com/Olical/nand2tetris.git", + "svn_url": "https://github.com/Olical/nand2tetris", + "homepage": "http://nand2tetris.org/", + "size": 348, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34325471, + "name": "nand2tetris", + "full_name": "koba-z33/nand2tetris", + "owner": { + "login": "koba-z33", + "id": 11753466, + "avatar_url": "https://avatars.githubusercontent.com/u/11753466?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/koba-z33", + "html_url": "https://github.com/koba-z33", + "followers_url": "https://api.github.com/users/koba-z33/followers", + "following_url": "https://api.github.com/users/koba-z33/following{/other_user}", + "gists_url": "https://api.github.com/users/koba-z33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/koba-z33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/koba-z33/subscriptions", + "organizations_url": "https://api.github.com/users/koba-z33/orgs", + "repos_url": "https://api.github.com/users/koba-z33/repos", + "events_url": "https://api.github.com/users/koba-z33/events{/privacy}", + "received_events_url": "https://api.github.com/users/koba-z33/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/koba-z33/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/koba-z33/nand2tetris", + "forks_url": "https://api.github.com/repos/koba-z33/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/koba-z33/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/koba-z33/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/koba-z33/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/koba-z33/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/koba-z33/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/koba-z33/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/koba-z33/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/koba-z33/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/koba-z33/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/koba-z33/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/koba-z33/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/koba-z33/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/koba-z33/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/koba-z33/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/koba-z33/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/koba-z33/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/koba-z33/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/koba-z33/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/koba-z33/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/koba-z33/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/koba-z33/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/koba-z33/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/koba-z33/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/koba-z33/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/koba-z33/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/koba-z33/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/koba-z33/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/koba-z33/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/koba-z33/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/koba-z33/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/koba-z33/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/koba-z33/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/koba-z33/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/koba-z33/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/koba-z33/nand2tetris/deployments", + "created_at": "2015-04-21T12:26:42Z", + "updated_at": "2015-04-30T08:14:48Z", + "pushed_at": "2015-04-30T08:14:47Z", + "git_url": "git://github.com/koba-z33/nand2tetris.git", + "ssh_url": "git@github.com:koba-z33/nand2tetris.git", + "clone_url": "https://github.com/koba-z33/nand2tetris.git", + "svn_url": "https://github.com/koba-z33/nand2tetris", + "homepage": null, + "size": 684, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34415691, + "name": "nand2tetris", + "full_name": "boris-okun/nand2tetris", + "owner": { + "login": "boris-okun", + "id": 5842733, + "avatar_url": "https://avatars.githubusercontent.com/u/5842733?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/boris-okun", + "html_url": "https://github.com/boris-okun", + "followers_url": "https://api.github.com/users/boris-okun/followers", + "following_url": "https://api.github.com/users/boris-okun/following{/other_user}", + "gists_url": "https://api.github.com/users/boris-okun/gists{/gist_id}", + "starred_url": "https://api.github.com/users/boris-okun/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/boris-okun/subscriptions", + "organizations_url": "https://api.github.com/users/boris-okun/orgs", + "repos_url": "https://api.github.com/users/boris-okun/repos", + "events_url": "https://api.github.com/users/boris-okun/events{/privacy}", + "received_events_url": "https://api.github.com/users/boris-okun/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/boris-okun/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/boris-okun/nand2tetris", + "forks_url": "https://api.github.com/repos/boris-okun/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/boris-okun/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/boris-okun/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/boris-okun/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/boris-okun/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/boris-okun/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/boris-okun/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/boris-okun/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/boris-okun/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/boris-okun/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/boris-okun/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/boris-okun/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/boris-okun/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/boris-okun/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/boris-okun/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/boris-okun/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/boris-okun/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/boris-okun/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/boris-okun/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/boris-okun/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/boris-okun/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/boris-okun/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/boris-okun/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/boris-okun/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/boris-okun/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/boris-okun/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/boris-okun/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/boris-okun/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/boris-okun/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/boris-okun/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/boris-okun/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/boris-okun/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/boris-okun/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/boris-okun/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/boris-okun/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/boris-okun/nand2tetris/deployments", + "created_at": "2015-04-22T21:01:23Z", + "updated_at": "2015-04-24T17:05:26Z", + "pushed_at": "2015-05-31T10:11:36Z", + "git_url": "git://github.com/boris-okun/nand2tetris.git", + "ssh_url": "git@github.com:boris-okun/nand2tetris.git", + "clone_url": "https://github.com/boris-okun/nand2tetris.git", + "svn_url": "https://github.com/boris-okun/nand2tetris", + "homepage": null, + "size": 700, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34621678, + "name": "nand2tetris", + "full_name": "mymoocs/nand2tetris", + "owner": { + "login": "mymoocs", + "id": 10682384, + "avatar_url": "https://avatars.githubusercontent.com/u/10682384?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mymoocs", + "html_url": "https://github.com/mymoocs", + "followers_url": "https://api.github.com/users/mymoocs/followers", + "following_url": "https://api.github.com/users/mymoocs/following{/other_user}", + "gists_url": "https://api.github.com/users/mymoocs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mymoocs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mymoocs/subscriptions", + "organizations_url": "https://api.github.com/users/mymoocs/orgs", + "repos_url": "https://api.github.com/users/mymoocs/repos", + "events_url": "https://api.github.com/users/mymoocs/events{/privacy}", + "received_events_url": "https://api.github.com/users/mymoocs/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mymoocs/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/mymoocs/nand2tetris", + "forks_url": "https://api.github.com/repos/mymoocs/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mymoocs/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mymoocs/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mymoocs/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mymoocs/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mymoocs/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mymoocs/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mymoocs/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mymoocs/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mymoocs/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mymoocs/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mymoocs/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mymoocs/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mymoocs/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mymoocs/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mymoocs/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mymoocs/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mymoocs/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mymoocs/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mymoocs/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mymoocs/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mymoocs/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mymoocs/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mymoocs/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mymoocs/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mymoocs/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mymoocs/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mymoocs/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mymoocs/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mymoocs/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mymoocs/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mymoocs/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mymoocs/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mymoocs/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mymoocs/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mymoocs/nand2tetris/deployments", + "created_at": "2015-04-26T17:04:44Z", + "updated_at": "2015-05-08T17:07:06Z", + "pushed_at": "2015-05-08T17:07:06Z", + "git_url": "git://github.com/mymoocs/nand2tetris.git", + "ssh_url": "git@github.com:mymoocs/nand2tetris.git", + "clone_url": "https://github.com/mymoocs/nand2tetris.git", + "svn_url": "https://github.com/mymoocs/nand2tetris", + "homepage": null, + "size": 792, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34955667, + "name": "nand2tetris", + "full_name": "radavis/nand2tetris", + "owner": { + "login": "radavis", + "id": 1299034, + "avatar_url": "https://avatars.githubusercontent.com/u/1299034?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/radavis", + "html_url": "https://github.com/radavis", + "followers_url": "https://api.github.com/users/radavis/followers", + "following_url": "https://api.github.com/users/radavis/following{/other_user}", + "gists_url": "https://api.github.com/users/radavis/gists{/gist_id}", + "starred_url": "https://api.github.com/users/radavis/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/radavis/subscriptions", + "organizations_url": "https://api.github.com/users/radavis/orgs", + "repos_url": "https://api.github.com/users/radavis/repos", + "events_url": "https://api.github.com/users/radavis/events{/privacy}", + "received_events_url": "https://api.github.com/users/radavis/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/radavis/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/radavis/nand2tetris", + "forks_url": "https://api.github.com/repos/radavis/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/radavis/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/radavis/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/radavis/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/radavis/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/radavis/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/radavis/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/radavis/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/radavis/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/radavis/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/radavis/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/radavis/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/radavis/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/radavis/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/radavis/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/radavis/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/radavis/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/radavis/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/radavis/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/radavis/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/radavis/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/radavis/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/radavis/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/radavis/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/radavis/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/radavis/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/radavis/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/radavis/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/radavis/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/radavis/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/radavis/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/radavis/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/radavis/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/radavis/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/radavis/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/radavis/nand2tetris/deployments", + "created_at": "2015-05-02T16:50:34Z", + "updated_at": "2015-05-04T17:01:23Z", + "pushed_at": "2015-05-16T19:13:35Z", + "git_url": "git://github.com/radavis/nand2tetris.git", + "ssh_url": "git@github.com:radavis/nand2tetris.git", + "clone_url": "https://github.com/radavis/nand2tetris.git", + "svn_url": "https://github.com/radavis/nand2tetris", + "homepage": null, + "size": 1740, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 35306785, + "name": "nand2tetris", + "full_name": "leonelfreire/nand2tetris", + "owner": { + "login": "leonelfreire", + "id": 14333, + "avatar_url": "https://avatars.githubusercontent.com/u/14333?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/leonelfreire", + "html_url": "https://github.com/leonelfreire", + "followers_url": "https://api.github.com/users/leonelfreire/followers", + "following_url": "https://api.github.com/users/leonelfreire/following{/other_user}", + "gists_url": "https://api.github.com/users/leonelfreire/gists{/gist_id}", + "starred_url": "https://api.github.com/users/leonelfreire/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/leonelfreire/subscriptions", + "organizations_url": "https://api.github.com/users/leonelfreire/orgs", + "repos_url": "https://api.github.com/users/leonelfreire/repos", + "events_url": "https://api.github.com/users/leonelfreire/events{/privacy}", + "received_events_url": "https://api.github.com/users/leonelfreire/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/leonelfreire/nand2tetris", + "description": "Solutions for projects found in the course: http://nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/leonelfreire/nand2tetris", + "forks_url": "https://api.github.com/repos/leonelfreire/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/leonelfreire/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/leonelfreire/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/leonelfreire/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/leonelfreire/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/leonelfreire/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/leonelfreire/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/leonelfreire/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/leonelfreire/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/leonelfreire/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/leonelfreire/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/leonelfreire/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/leonelfreire/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/leonelfreire/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/leonelfreire/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/leonelfreire/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/leonelfreire/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/leonelfreire/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/leonelfreire/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/leonelfreire/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/leonelfreire/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/leonelfreire/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/leonelfreire/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/leonelfreire/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/leonelfreire/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/leonelfreire/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/leonelfreire/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/leonelfreire/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/leonelfreire/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/leonelfreire/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/leonelfreire/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/leonelfreire/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/leonelfreire/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/leonelfreire/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/leonelfreire/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/leonelfreire/nand2tetris/deployments", + "created_at": "2015-05-08T23:28:55Z", + "updated_at": "2015-05-29T23:38:28Z", + "pushed_at": "2015-05-29T23:40:15Z", + "git_url": "git://github.com/leonelfreire/nand2tetris.git", + "ssh_url": "git@github.com:leonelfreire/nand2tetris.git", + "clone_url": "https://github.com/leonelfreire/nand2tetris.git", + "svn_url": "https://github.com/leonelfreire/nand2tetris", + "homepage": "", + "size": 236, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 33475896, + "name": "nand2tetris", + "full_name": "yamanetoshi/nand2tetris", + "owner": { + "login": "yamanetoshi", + "id": 10039, + "avatar_url": "https://avatars.githubusercontent.com/u/10039?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yamanetoshi", + "html_url": "https://github.com/yamanetoshi", + "followers_url": "https://api.github.com/users/yamanetoshi/followers", + "following_url": "https://api.github.com/users/yamanetoshi/following{/other_user}", + "gists_url": "https://api.github.com/users/yamanetoshi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yamanetoshi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yamanetoshi/subscriptions", + "organizations_url": "https://api.github.com/users/yamanetoshi/orgs", + "repos_url": "https://api.github.com/users/yamanetoshi/repos", + "events_url": "https://api.github.com/users/yamanetoshi/events{/privacy}", + "received_events_url": "https://api.github.com/users/yamanetoshi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yamanetoshi/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/yamanetoshi/nand2tetris", + "forks_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yamanetoshi/nand2tetris/deployments", + "created_at": "2015-04-06T09:54:40Z", + "updated_at": "2015-04-09T12:33:37Z", + "pushed_at": "2015-04-09T12:33:35Z", + "git_url": "git://github.com/yamanetoshi/nand2tetris.git", + "ssh_url": "git@github.com:yamanetoshi/nand2tetris.git", + "clone_url": "https://github.com/yamanetoshi/nand2tetris.git", + "svn_url": "https://github.com/yamanetoshi/nand2tetris", + "homepage": null, + "size": 312, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 33715271, + "name": "nand2tetris", + "full_name": "mishelle123/nand2tetris", + "owner": { + "login": "mishelle123", + "id": 11874650, + "avatar_url": "https://avatars.githubusercontent.com/u/11874650?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mishelle123", + "html_url": "https://github.com/mishelle123", + "followers_url": "https://api.github.com/users/mishelle123/followers", + "following_url": "https://api.github.com/users/mishelle123/following{/other_user}", + "gists_url": "https://api.github.com/users/mishelle123/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mishelle123/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mishelle123/subscriptions", + "organizations_url": "https://api.github.com/users/mishelle123/orgs", + "repos_url": "https://api.github.com/users/mishelle123/repos", + "events_url": "https://api.github.com/users/mishelle123/events{/privacy}", + "received_events_url": "https://api.github.com/users/mishelle123/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mishelle123/nand2tetris", + "description": "written in hdl, asm, python", + "fork": false, + "url": "https://api.github.com/repos/mishelle123/nand2tetris", + "forks_url": "https://api.github.com/repos/mishelle123/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mishelle123/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mishelle123/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mishelle123/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mishelle123/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mishelle123/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mishelle123/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mishelle123/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mishelle123/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mishelle123/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mishelle123/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mishelle123/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mishelle123/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mishelle123/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mishelle123/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mishelle123/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mishelle123/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mishelle123/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mishelle123/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mishelle123/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mishelle123/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mishelle123/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mishelle123/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mishelle123/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mishelle123/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mishelle123/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mishelle123/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mishelle123/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mishelle123/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mishelle123/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mishelle123/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mishelle123/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mishelle123/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mishelle123/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mishelle123/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mishelle123/nand2tetris/deployments", + "created_at": "2015-04-10T07:39:43Z", + "updated_at": "2015-04-21T16:47:36Z", + "pushed_at": "2015-04-21T16:47:35Z", + "git_url": "git://github.com/mishelle123/nand2tetris.git", + "ssh_url": "git@github.com:mishelle123/nand2tetris.git", + "clone_url": "https://github.com/mishelle123/nand2tetris.git", + "svn_url": "https://github.com/mishelle123/nand2tetris", + "homepage": null, + "size": 720, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 33796230, + "name": "Nand2Tetris", + "full_name": "wuzixiao/Nand2Tetris", + "owner": { + "login": "wuzixiao", + "id": 802238, + "avatar_url": "https://avatars.githubusercontent.com/u/802238?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/wuzixiao", + "html_url": "https://github.com/wuzixiao", + "followers_url": "https://api.github.com/users/wuzixiao/followers", + "following_url": "https://api.github.com/users/wuzixiao/following{/other_user}", + "gists_url": "https://api.github.com/users/wuzixiao/gists{/gist_id}", + "starred_url": "https://api.github.com/users/wuzixiao/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wuzixiao/subscriptions", + "organizations_url": "https://api.github.com/users/wuzixiao/orgs", + "repos_url": "https://api.github.com/users/wuzixiao/repos", + "events_url": "https://api.github.com/users/wuzixiao/events{/privacy}", + "received_events_url": "https://api.github.com/users/wuzixiao/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/wuzixiao/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/wuzixiao/Nand2Tetris", + "forks_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/wuzixiao/Nand2Tetris/deployments", + "created_at": "2015-04-11T23:26:39Z", + "updated_at": "2015-05-03T09:55:04Z", + "pushed_at": "2015-05-03T09:55:03Z", + "git_url": "git://github.com/wuzixiao/Nand2Tetris.git", + "ssh_url": "git@github.com:wuzixiao/Nand2Tetris.git", + "clone_url": "https://github.com/wuzixiao/Nand2Tetris.git", + "svn_url": "https://github.com/wuzixiao/Nand2Tetris", + "homepage": null, + "size": 444, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 29904036, + "name": "nand2tetris", + "full_name": "vboginskey/nand2tetris", + "owner": { + "login": "vboginskey", + "id": 6887135, + "avatar_url": "https://avatars.githubusercontent.com/u/6887135?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vboginskey", + "html_url": "https://github.com/vboginskey", + "followers_url": "https://api.github.com/users/vboginskey/followers", + "following_url": "https://api.github.com/users/vboginskey/following{/other_user}", + "gists_url": "https://api.github.com/users/vboginskey/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vboginskey/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vboginskey/subscriptions", + "organizations_url": "https://api.github.com/users/vboginskey/orgs", + "repos_url": "https://api.github.com/users/vboginskey/repos", + "events_url": "https://api.github.com/users/vboginskey/events{/privacy}", + "received_events_url": "https://api.github.com/users/vboginskey/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/vboginskey/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/vboginskey/nand2tetris", + "forks_url": "https://api.github.com/repos/vboginskey/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/vboginskey/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vboginskey/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vboginskey/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/vboginskey/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/vboginskey/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/vboginskey/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/vboginskey/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/vboginskey/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/vboginskey/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/vboginskey/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vboginskey/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vboginskey/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vboginskey/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vboginskey/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vboginskey/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/vboginskey/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/vboginskey/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/vboginskey/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/vboginskey/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/vboginskey/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vboginskey/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vboginskey/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vboginskey/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vboginskey/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/vboginskey/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vboginskey/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/vboginskey/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vboginskey/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/vboginskey/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/vboginskey/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vboginskey/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vboginskey/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vboginskey/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/vboginskey/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/vboginskey/nand2tetris/deployments", + "created_at": "2015-01-27T08:12:08Z", + "updated_at": "2015-02-19T21:59:43Z", + "pushed_at": "2015-02-19T21:59:42Z", + "git_url": "git://github.com/vboginskey/nand2tetris.git", + "ssh_url": "git@github.com:vboginskey/nand2tetris.git", + "clone_url": "https://github.com/vboginskey/nand2tetris.git", + "svn_url": "https://github.com/vboginskey/nand2tetris", + "homepage": null, + "size": 308, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 43568012, + "name": "nand2tetris", + "full_name": "slackboxster/nand2tetris", + "owner": { + "login": "slackboxster", + "id": 1282780, + "avatar_url": "https://avatars.githubusercontent.com/u/1282780?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/slackboxster", + "html_url": "https://github.com/slackboxster", + "followers_url": "https://api.github.com/users/slackboxster/followers", + "following_url": "https://api.github.com/users/slackboxster/following{/other_user}", + "gists_url": "https://api.github.com/users/slackboxster/gists{/gist_id}", + "starred_url": "https://api.github.com/users/slackboxster/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/slackboxster/subscriptions", + "organizations_url": "https://api.github.com/users/slackboxster/orgs", + "repos_url": "https://api.github.com/users/slackboxster/repos", + "events_url": "https://api.github.com/users/slackboxster/events{/privacy}", + "received_events_url": "https://api.github.com/users/slackboxster/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/slackboxster/nand2tetris", + "description": "My work on the nand2tetris project", + "fork": false, + "url": "https://api.github.com/repos/slackboxster/nand2tetris", + "forks_url": "https://api.github.com/repos/slackboxster/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/slackboxster/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/slackboxster/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/slackboxster/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/slackboxster/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/slackboxster/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/slackboxster/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/slackboxster/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/slackboxster/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/slackboxster/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/slackboxster/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/slackboxster/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/slackboxster/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/slackboxster/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/slackboxster/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/slackboxster/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/slackboxster/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/slackboxster/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/slackboxster/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/slackboxster/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/slackboxster/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/slackboxster/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/slackboxster/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/slackboxster/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/slackboxster/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/slackboxster/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/slackboxster/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/slackboxster/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/slackboxster/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/slackboxster/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/slackboxster/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/slackboxster/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/slackboxster/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/slackboxster/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/slackboxster/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/slackboxster/nand2tetris/deployments", + "created_at": "2015-10-02T18:00:56Z", + "updated_at": "2015-10-02T18:01:25Z", + "pushed_at": "2015-10-02T20:24:03Z", + "git_url": "git://github.com/slackboxster/nand2tetris.git", + "ssh_url": "git@github.com:slackboxster/nand2tetris.git", + "clone_url": "https://github.com/slackboxster/nand2tetris.git", + "svn_url": "https://github.com/slackboxster/nand2tetris", + "homepage": null, + "size": 332, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 42061569, + "name": "nand2tetris", + "full_name": "cristianiorga/nand2tetris", + "owner": { + "login": "cristianiorga", + "id": 9863741, + "avatar_url": "https://avatars.githubusercontent.com/u/9863741?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cristianiorga", + "html_url": "https://github.com/cristianiorga", + "followers_url": "https://api.github.com/users/cristianiorga/followers", + "following_url": "https://api.github.com/users/cristianiorga/following{/other_user}", + "gists_url": "https://api.github.com/users/cristianiorga/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cristianiorga/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cristianiorga/subscriptions", + "organizations_url": "https://api.github.com/users/cristianiorga/orgs", + "repos_url": "https://api.github.com/users/cristianiorga/repos", + "events_url": "https://api.github.com/users/cristianiorga/events{/privacy}", + "received_events_url": "https://api.github.com/users/cristianiorga/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cristianiorga/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/cristianiorga/nand2tetris", + "forks_url": "https://api.github.com/repos/cristianiorga/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/cristianiorga/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cristianiorga/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cristianiorga/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/cristianiorga/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cristianiorga/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cristianiorga/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/cristianiorga/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cristianiorga/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cristianiorga/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/cristianiorga/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cristianiorga/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cristianiorga/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cristianiorga/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cristianiorga/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cristianiorga/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/cristianiorga/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cristianiorga/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cristianiorga/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cristianiorga/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/cristianiorga/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cristianiorga/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cristianiorga/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cristianiorga/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cristianiorga/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cristianiorga/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cristianiorga/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/cristianiorga/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cristianiorga/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/cristianiorga/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cristianiorga/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cristianiorga/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cristianiorga/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cristianiorga/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cristianiorga/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cristianiorga/nand2tetris/deployments", + "created_at": "2015-09-07T15:49:02Z", + "updated_at": "2015-09-07T16:00:10Z", + "pushed_at": "2015-09-10T20:31:19Z", + "git_url": "git://github.com/cristianiorga/nand2tetris.git", + "ssh_url": "git@github.com:cristianiorga/nand2tetris.git", + "clone_url": "https://github.com/cristianiorga/nand2tetris.git", + "svn_url": "https://github.com/cristianiorga/nand2tetris", + "homepage": null, + "size": 300, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 50258720, + "name": "nand2tetris", + "full_name": "pcarlisle/nand2tetris", + "owner": { + "login": "pcarlisle", + "id": 1234752, + "avatar_url": "https://avatars.githubusercontent.com/u/1234752?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pcarlisle", + "html_url": "https://github.com/pcarlisle", + "followers_url": "https://api.github.com/users/pcarlisle/followers", + "following_url": "https://api.github.com/users/pcarlisle/following{/other_user}", + "gists_url": "https://api.github.com/users/pcarlisle/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pcarlisle/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pcarlisle/subscriptions", + "organizations_url": "https://api.github.com/users/pcarlisle/orgs", + "repos_url": "https://api.github.com/users/pcarlisle/repos", + "events_url": "https://api.github.com/users/pcarlisle/events{/privacy}", + "received_events_url": "https://api.github.com/users/pcarlisle/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/pcarlisle/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/pcarlisle/nand2tetris", + "forks_url": "https://api.github.com/repos/pcarlisle/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/pcarlisle/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/pcarlisle/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/pcarlisle/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/pcarlisle/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/pcarlisle/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/pcarlisle/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/pcarlisle/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/pcarlisle/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/pcarlisle/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/pcarlisle/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/pcarlisle/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/pcarlisle/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/pcarlisle/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/pcarlisle/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/pcarlisle/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/pcarlisle/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/pcarlisle/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/pcarlisle/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/pcarlisle/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/pcarlisle/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/pcarlisle/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/pcarlisle/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/pcarlisle/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/pcarlisle/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/pcarlisle/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/pcarlisle/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/pcarlisle/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/pcarlisle/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/pcarlisle/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/pcarlisle/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/pcarlisle/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/pcarlisle/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/pcarlisle/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/pcarlisle/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/pcarlisle/nand2tetris/deployments", + "created_at": "2016-01-23T21:12:31Z", + "updated_at": "2016-01-23T21:12:49Z", + "pushed_at": "2016-01-23T23:52:18Z", + "git_url": "git://github.com/pcarlisle/nand2tetris.git", + "ssh_url": "git@github.com:pcarlisle/nand2tetris.git", + "clone_url": "https://github.com/pcarlisle/nand2tetris.git", + "svn_url": "https://github.com/pcarlisle/nand2tetris", + "homepage": null, + "size": 156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 50887638, + "name": "nand2tetris", + "full_name": "uiureo/nand2tetris", + "owner": { + "login": "uiureo", + "id": 116057, + "avatar_url": "https://avatars.githubusercontent.com/u/116057?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/uiureo", + "html_url": "https://github.com/uiureo", + "followers_url": "https://api.github.com/users/uiureo/followers", + "following_url": "https://api.github.com/users/uiureo/following{/other_user}", + "gists_url": "https://api.github.com/users/uiureo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/uiureo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/uiureo/subscriptions", + "organizations_url": "https://api.github.com/users/uiureo/orgs", + "repos_url": "https://api.github.com/users/uiureo/repos", + "events_url": "https://api.github.com/users/uiureo/events{/privacy}", + "received_events_url": "https://api.github.com/users/uiureo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/uiureo/nand2tetris", + "description": "My code for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/uiureo/nand2tetris", + "forks_url": "https://api.github.com/repos/uiureo/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/uiureo/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/uiureo/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/uiureo/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/uiureo/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/uiureo/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/uiureo/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/uiureo/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/uiureo/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/uiureo/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/uiureo/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/uiureo/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/uiureo/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/uiureo/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/uiureo/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/uiureo/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/uiureo/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/uiureo/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/uiureo/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/uiureo/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/uiureo/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/uiureo/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/uiureo/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/uiureo/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/uiureo/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/uiureo/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/uiureo/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/uiureo/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/uiureo/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/uiureo/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/uiureo/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/uiureo/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/uiureo/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/uiureo/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/uiureo/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/uiureo/nand2tetris/deployments", + "created_at": "2016-02-02T02:20:46Z", + "updated_at": "2016-02-07T13:14:25Z", + "pushed_at": "2016-02-17T01:33:58Z", + "git_url": "git://github.com/uiureo/nand2tetris.git", + "ssh_url": "git@github.com:uiureo/nand2tetris.git", + "clone_url": "https://github.com/uiureo/nand2tetris.git", + "svn_url": "https://github.com/uiureo/nand2tetris", + "homepage": "", + "size": 15, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 51442346, + "name": "nand2tetris", + "full_name": "mauriciv/nand2tetris", + "owner": { + "login": "mauriciv", + "id": 12043163, + "avatar_url": "https://avatars.githubusercontent.com/u/12043163?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mauriciv", + "html_url": "https://github.com/mauriciv", + "followers_url": "https://api.github.com/users/mauriciv/followers", + "following_url": "https://api.github.com/users/mauriciv/following{/other_user}", + "gists_url": "https://api.github.com/users/mauriciv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mauriciv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mauriciv/subscriptions", + "organizations_url": "https://api.github.com/users/mauriciv/orgs", + "repos_url": "https://api.github.com/users/mauriciv/repos", + "events_url": "https://api.github.com/users/mauriciv/events{/privacy}", + "received_events_url": "https://api.github.com/users/mauriciv/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mauriciv/nand2tetris", + "description": "Mi implementacion de el curso nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/mauriciv/nand2tetris", + "forks_url": "https://api.github.com/repos/mauriciv/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mauriciv/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mauriciv/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mauriciv/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mauriciv/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mauriciv/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mauriciv/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mauriciv/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mauriciv/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mauriciv/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mauriciv/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mauriciv/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mauriciv/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mauriciv/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mauriciv/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mauriciv/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mauriciv/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mauriciv/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mauriciv/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mauriciv/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mauriciv/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mauriciv/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mauriciv/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mauriciv/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mauriciv/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mauriciv/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mauriciv/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mauriciv/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mauriciv/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mauriciv/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mauriciv/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mauriciv/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mauriciv/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mauriciv/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mauriciv/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mauriciv/nand2tetris/deployments", + "created_at": "2016-02-10T13:23:08Z", + "updated_at": "2016-02-10T13:32:02Z", + "pushed_at": "2016-02-17T02:07:08Z", + "git_url": "git://github.com/mauriciv/nand2tetris.git", + "ssh_url": "git@github.com:mauriciv/nand2tetris.git", + "clone_url": "https://github.com/mauriciv/nand2tetris.git", + "svn_url": "https://github.com/mauriciv/nand2tetris", + "homepage": null, + "size": 537, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 46690211, + "name": "nand_to_tetris", + "full_name": "kokrange/nand_to_tetris", + "owner": { + "login": "kokrange", + "id": 4329893, + "avatar_url": "https://avatars.githubusercontent.com/u/4329893?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kokrange", + "html_url": "https://github.com/kokrange", + "followers_url": "https://api.github.com/users/kokrange/followers", + "following_url": "https://api.github.com/users/kokrange/following{/other_user}", + "gists_url": "https://api.github.com/users/kokrange/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kokrange/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kokrange/subscriptions", + "organizations_url": "https://api.github.com/users/kokrange/orgs", + "repos_url": "https://api.github.com/users/kokrange/repos", + "events_url": "https://api.github.com/users/kokrange/events{/privacy}", + "received_events_url": "https://api.github.com/users/kokrange/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kokrange/nand_to_tetris", + "description": "build a computer step by step from level zero", + "fork": false, + "url": "https://api.github.com/repos/kokrange/nand_to_tetris", + "forks_url": "https://api.github.com/repos/kokrange/nand_to_tetris/forks", + "keys_url": "https://api.github.com/repos/kokrange/nand_to_tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kokrange/nand_to_tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kokrange/nand_to_tetris/teams", + "hooks_url": "https://api.github.com/repos/kokrange/nand_to_tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kokrange/nand_to_tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kokrange/nand_to_tetris/events", + "assignees_url": "https://api.github.com/repos/kokrange/nand_to_tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kokrange/nand_to_tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kokrange/nand_to_tetris/tags", + "blobs_url": "https://api.github.com/repos/kokrange/nand_to_tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kokrange/nand_to_tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kokrange/nand_to_tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kokrange/nand_to_tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kokrange/nand_to_tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kokrange/nand_to_tetris/languages", + "stargazers_url": "https://api.github.com/repos/kokrange/nand_to_tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kokrange/nand_to_tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kokrange/nand_to_tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kokrange/nand_to_tetris/subscription", + "commits_url": "https://api.github.com/repos/kokrange/nand_to_tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kokrange/nand_to_tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kokrange/nand_to_tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kokrange/nand_to_tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kokrange/nand_to_tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kokrange/nand_to_tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kokrange/nand_to_tetris/merges", + "archive_url": "https://api.github.com/repos/kokrange/nand_to_tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kokrange/nand_to_tetris/downloads", + "issues_url": "https://api.github.com/repos/kokrange/nand_to_tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kokrange/nand_to_tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kokrange/nand_to_tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kokrange/nand_to_tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kokrange/nand_to_tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kokrange/nand_to_tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kokrange/nand_to_tetris/deployments", + "created_at": "2015-11-23T01:45:23Z", + "updated_at": "2015-11-23T01:51:37Z", + "pushed_at": "2015-11-23T01:51:33Z", + "git_url": "git://github.com/kokrange/nand_to_tetris.git", + "ssh_url": "git@github.com:kokrange/nand_to_tetris.git", + "clone_url": "https://github.com/kokrange/nand_to_tetris.git", + "svn_url": "https://github.com/kokrange/nand_to_tetris", + "homepage": null, + "size": 10851, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 33786820, + "name": "Nand2Tetris", + "full_name": "jth0mass0n/Nand2Tetris", + "owner": { + "login": "jth0mass0n", + "id": 200477, + "avatar_url": "https://avatars.githubusercontent.com/u/200477?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jth0mass0n", + "html_url": "https://github.com/jth0mass0n", + "followers_url": "https://api.github.com/users/jth0mass0n/followers", + "following_url": "https://api.github.com/users/jth0mass0n/following{/other_user}", + "gists_url": "https://api.github.com/users/jth0mass0n/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jth0mass0n/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jth0mass0n/subscriptions", + "organizations_url": "https://api.github.com/users/jth0mass0n/orgs", + "repos_url": "https://api.github.com/users/jth0mass0n/repos", + "events_url": "https://api.github.com/users/jth0mass0n/events{/privacy}", + "received_events_url": "https://api.github.com/users/jth0mass0n/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jth0mass0n/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris", + "forks_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jth0mass0n/Nand2Tetris/deployments", + "created_at": "2015-04-11T18:16:00Z", + "updated_at": "2015-04-11T18:16:28Z", + "pushed_at": "2015-12-05T22:42:53Z", + "git_url": "git://github.com/jth0mass0n/Nand2Tetris.git", + "ssh_url": "git@github.com:jth0mass0n/Nand2Tetris.git", + "clone_url": "https://github.com/jth0mass0n/Nand2Tetris.git", + "svn_url": "https://github.com/jth0mass0n/Nand2Tetris", + "homepage": null, + "size": 548, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 48705377, + "name": "Nand2Tetris", + "full_name": "ltsimps/Nand2Tetris", + "owner": { + "login": "ltsimps", + "id": 5578953, + "avatar_url": "https://avatars.githubusercontent.com/u/5578953?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ltsimps", + "html_url": "https://github.com/ltsimps", + "followers_url": "https://api.github.com/users/ltsimps/followers", + "following_url": "https://api.github.com/users/ltsimps/following{/other_user}", + "gists_url": "https://api.github.com/users/ltsimps/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ltsimps/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ltsimps/subscriptions", + "organizations_url": "https://api.github.com/users/ltsimps/orgs", + "repos_url": "https://api.github.com/users/ltsimps/repos", + "events_url": "https://api.github.com/users/ltsimps/events{/privacy}", + "received_events_url": "https://api.github.com/users/ltsimps/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ltsimps/Nand2Tetris", + "description": "Mooc Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/ltsimps/Nand2Tetris", + "forks_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ltsimps/Nand2Tetris/deployments", + "created_at": "2015-12-28T18:02:03Z", + "updated_at": "2015-12-28T18:40:38Z", + "pushed_at": "2015-12-28T18:44:15Z", + "git_url": "git://github.com/ltsimps/Nand2Tetris.git", + "ssh_url": "git@github.com:ltsimps/Nand2Tetris.git", + "clone_url": "https://github.com/ltsimps/Nand2Tetris.git", + "svn_url": "https://github.com/ltsimps/Nand2Tetris", + "homepage": null, + "size": 505, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 34175504, + "name": "nand2tetris", + "full_name": "netskink/nand2tetris", + "owner": { + "login": "netskink", + "id": 4422172, + "avatar_url": "https://avatars.githubusercontent.com/u/4422172?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/netskink", + "html_url": "https://github.com/netskink", + "followers_url": "https://api.github.com/users/netskink/followers", + "following_url": "https://api.github.com/users/netskink/following{/other_user}", + "gists_url": "https://api.github.com/users/netskink/gists{/gist_id}", + "starred_url": "https://api.github.com/users/netskink/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/netskink/subscriptions", + "organizations_url": "https://api.github.com/users/netskink/orgs", + "repos_url": "https://api.github.com/users/netskink/repos", + "events_url": "https://api.github.com/users/netskink/events{/privacy}", + "received_events_url": "https://api.github.com/users/netskink/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/netskink/nand2tetris", + "description": "My code for the coursera class", + "fork": false, + "url": "https://api.github.com/repos/netskink/nand2tetris", + "forks_url": "https://api.github.com/repos/netskink/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/netskink/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/netskink/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/netskink/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/netskink/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/netskink/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/netskink/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/netskink/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/netskink/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/netskink/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/netskink/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/netskink/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/netskink/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/netskink/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/netskink/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/netskink/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/netskink/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/netskink/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/netskink/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/netskink/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/netskink/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/netskink/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/netskink/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/netskink/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/netskink/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/netskink/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/netskink/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/netskink/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/netskink/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/netskink/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/netskink/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/netskink/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/netskink/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/netskink/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/netskink/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/netskink/nand2tetris/deployments", + "created_at": "2015-04-18T17:31:32Z", + "updated_at": "2016-02-02T15:06:58Z", + "pushed_at": "2015-05-10T01:10:12Z", + "git_url": "git://github.com/netskink/nand2tetris.git", + "ssh_url": "git@github.com:netskink/nand2tetris.git", + "clone_url": "https://github.com/netskink/nand2tetris.git", + "svn_url": "https://github.com/netskink/nand2tetris", + "homepage": null, + "size": 328, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 45062116, + "name": "nand2tetris", + "full_name": "ryanvaneck/nand2tetris", + "owner": { + "login": "ryanvaneck", + "id": 4763985, + "avatar_url": "https://avatars.githubusercontent.com/u/4763985?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ryanvaneck", + "html_url": "https://github.com/ryanvaneck", + "followers_url": "https://api.github.com/users/ryanvaneck/followers", + "following_url": "https://api.github.com/users/ryanvaneck/following{/other_user}", + "gists_url": "https://api.github.com/users/ryanvaneck/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ryanvaneck/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryanvaneck/subscriptions", + "organizations_url": "https://api.github.com/users/ryanvaneck/orgs", + "repos_url": "https://api.github.com/users/ryanvaneck/repos", + "events_url": "https://api.github.com/users/ryanvaneck/events{/privacy}", + "received_events_url": "https://api.github.com/users/ryanvaneck/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ryanvaneck/nand2tetris", + "description": "I am working through the book \"The Elements of Computing Systems, Building a Modern Computer from First Principles\" aka nand2tetris. From logic gates to boolean logic to machine language, assembly, a virtual machine, a high-level language and compiler, and an operating system. ", + "fork": false, + "url": "https://api.github.com/repos/ryanvaneck/nand2tetris", + "forks_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ryanvaneck/nand2tetris/deployments", + "created_at": "2015-10-27T18:40:23Z", + "updated_at": "2016-02-05T15:04:35Z", + "pushed_at": "2015-12-18T21:59:46Z", + "git_url": "git://github.com/ryanvaneck/nand2tetris.git", + "ssh_url": "git@github.com:ryanvaneck/nand2tetris.git", + "clone_url": "https://github.com/ryanvaneck/nand2tetris.git", + "svn_url": "https://github.com/ryanvaneck/nand2tetris", + "homepage": "", + "size": 206, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 39622339, + "name": "nand2tetris", + "full_name": "zhuyoujun/nand2tetris", + "owner": { + "login": "zhuyoujun", + "id": 9513362, + "avatar_url": "https://avatars.githubusercontent.com/u/9513362?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zhuyoujun", + "html_url": "https://github.com/zhuyoujun", + "followers_url": "https://api.github.com/users/zhuyoujun/followers", + "following_url": "https://api.github.com/users/zhuyoujun/following{/other_user}", + "gists_url": "https://api.github.com/users/zhuyoujun/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zhuyoujun/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zhuyoujun/subscriptions", + "organizations_url": "https://api.github.com/users/zhuyoujun/orgs", + "repos_url": "https://api.github.com/users/zhuyoujun/repos", + "events_url": "https://api.github.com/users/zhuyoujun/events{/privacy}", + "received_events_url": "https://api.github.com/users/zhuyoujun/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/zhuyoujun/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/zhuyoujun/nand2tetris", + "forks_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/zhuyoujun/nand2tetris/deployments", + "created_at": "2015-07-24T09:04:30Z", + "updated_at": "2016-02-03T05:57:56Z", + "pushed_at": "2016-02-03T05:57:55Z", + "git_url": "git://github.com/zhuyoujun/nand2tetris.git", + "ssh_url": "git@github.com:zhuyoujun/nand2tetris.git", + "clone_url": "https://github.com/zhuyoujun/nand2tetris.git", + "svn_url": "https://github.com/zhuyoujun/nand2tetris", + "homepage": null, + "size": 517, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 52140575, + "name": "NAND2TETRIS", + "full_name": "Jiang333/NAND2TETRIS", + "owner": { + "login": "Jiang333", + "id": 8582186, + "avatar_url": "https://avatars.githubusercontent.com/u/8582186?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Jiang333", + "html_url": "https://github.com/Jiang333", + "followers_url": "https://api.github.com/users/Jiang333/followers", + "following_url": "https://api.github.com/users/Jiang333/following{/other_user}", + "gists_url": "https://api.github.com/users/Jiang333/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jiang333/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jiang333/subscriptions", + "organizations_url": "https://api.github.com/users/Jiang333/orgs", + "repos_url": "https://api.github.com/users/Jiang333/repos", + "events_url": "https://api.github.com/users/Jiang333/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jiang333/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Jiang333/NAND2TETRIS", + "description": "Work done on Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/Jiang333/NAND2TETRIS", + "forks_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/forks", + "keys_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/teams", + "hooks_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/hooks", + "issue_events_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/issues/events{/number}", + "events_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/events", + "assignees_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/assignees{/user}", + "branches_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/branches{/branch}", + "tags_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/tags", + "blobs_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/languages", + "stargazers_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/stargazers", + "contributors_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/contributors", + "subscribers_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/subscribers", + "subscription_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/subscription", + "commits_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/contents/{+path}", + "compare_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/merges", + "archive_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/downloads", + "issues_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/issues{/number}", + "pulls_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/labels{/name}", + "releases_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/releases{/id}", + "deployments_url": "https://api.github.com/repos/Jiang333/NAND2TETRIS/deployments", + "created_at": "2016-02-20T06:38:29Z", + "updated_at": "2016-02-20T06:49:38Z", + "pushed_at": "2016-02-20T06:51:29Z", + "git_url": "git://github.com/Jiang333/NAND2TETRIS.git", + "ssh_url": "git@github.com:Jiang333/NAND2TETRIS.git", + "clone_url": "https://github.com/Jiang333/NAND2TETRIS.git", + "svn_url": "https://github.com/Jiang333/NAND2TETRIS", + "homepage": null, + "size": 541, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 38657992, + "name": "Nand2Tetris", + "full_name": "Korinek/Nand2Tetris", + "owner": { + "login": "Korinek", + "id": 1657649, + "avatar_url": "https://avatars.githubusercontent.com/u/1657649?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Korinek", + "html_url": "https://github.com/Korinek", + "followers_url": "https://api.github.com/users/Korinek/followers", + "following_url": "https://api.github.com/users/Korinek/following{/other_user}", + "gists_url": "https://api.github.com/users/Korinek/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Korinek/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Korinek/subscriptions", + "organizations_url": "https://api.github.com/users/Korinek/orgs", + "repos_url": "https://api.github.com/users/Korinek/repos", + "events_url": "https://api.github.com/users/Korinek/events{/privacy}", + "received_events_url": "https://api.github.com/users/Korinek/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Korinek/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Korinek/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Korinek/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Korinek/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Korinek/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Korinek/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Korinek/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Korinek/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Korinek/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Korinek/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Korinek/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Korinek/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Korinek/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Korinek/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Korinek/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Korinek/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Korinek/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Korinek/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Korinek/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Korinek/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Korinek/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Korinek/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Korinek/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Korinek/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Korinek/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Korinek/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Korinek/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Korinek/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Korinek/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Korinek/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Korinek/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Korinek/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Korinek/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Korinek/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Korinek/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Korinek/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Korinek/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Korinek/Nand2Tetris/deployments", + "created_at": "2015-07-07T02:08:30Z", + "updated_at": "2016-02-28T18:03:54Z", + "pushed_at": "2016-02-28T18:03:52Z", + "git_url": "git://github.com/Korinek/Nand2Tetris.git", + "ssh_url": "git@github.com:Korinek/Nand2Tetris.git", + "clone_url": "https://github.com/Korinek/Nand2Tetris.git", + "svn_url": "https://github.com/Korinek/Nand2Tetris", + "homepage": null, + "size": 1916, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 53259984, + "name": "Nand2Tetris", + "full_name": "ofer515/Nand2Tetris", + "owner": { + "login": "ofer515", + "id": 15180555, + "avatar_url": "https://avatars.githubusercontent.com/u/15180555?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ofer515", + "html_url": "https://github.com/ofer515", + "followers_url": "https://api.github.com/users/ofer515/followers", + "following_url": "https://api.github.com/users/ofer515/following{/other_user}", + "gists_url": "https://api.github.com/users/ofer515/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ofer515/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ofer515/subscriptions", + "organizations_url": "https://api.github.com/users/ofer515/orgs", + "repos_url": "https://api.github.com/users/ofer515/repos", + "events_url": "https://api.github.com/users/ofer515/events{/privacy}", + "received_events_url": "https://api.github.com/users/ofer515/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ofer515/Nand2Tetris", + "description": "Project", + "fork": false, + "url": "https://api.github.com/repos/ofer515/Nand2Tetris", + "forks_url": "https://api.github.com/repos/ofer515/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/ofer515/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ofer515/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ofer515/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/ofer515/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ofer515/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ofer515/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/ofer515/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ofer515/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ofer515/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/ofer515/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ofer515/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ofer515/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ofer515/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ofer515/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ofer515/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/ofer515/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ofer515/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ofer515/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ofer515/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/ofer515/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ofer515/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ofer515/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ofer515/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ofer515/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ofer515/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ofer515/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/ofer515/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ofer515/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/ofer515/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ofer515/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ofer515/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ofer515/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ofer515/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ofer515/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ofer515/Nand2Tetris/deployments", + "created_at": "2016-03-06T14:52:32Z", + "updated_at": "2016-03-06T14:52:52Z", + "pushed_at": "2016-03-06T14:52:51Z", + "git_url": "git://github.com/ofer515/Nand2Tetris.git", + "ssh_url": "git@github.com:ofer515/Nand2Tetris.git", + "clone_url": "https://github.com/ofer515/Nand2Tetris.git", + "svn_url": "https://github.com/ofer515/Nand2Tetris", + "homepage": null, + "size": 502, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 47869618, + "name": "nand2tetris", + "full_name": "tetsuroh/nand2tetris", + "owner": { + "login": "tetsuroh", + "id": 1198438, + "avatar_url": "https://avatars.githubusercontent.com/u/1198438?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tetsuroh", + "html_url": "https://github.com/tetsuroh", + "followers_url": "https://api.github.com/users/tetsuroh/followers", + "following_url": "https://api.github.com/users/tetsuroh/following{/other_user}", + "gists_url": "https://api.github.com/users/tetsuroh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tetsuroh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tetsuroh/subscriptions", + "organizations_url": "https://api.github.com/users/tetsuroh/orgs", + "repos_url": "https://api.github.com/users/tetsuroh/repos", + "events_url": "https://api.github.com/users/tetsuroh/events{/privacy}", + "received_events_url": "https://api.github.com/users/tetsuroh/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tetsuroh/nand2tetris", + "description": "コンピュータシステムの理論と実装のやつ", + "fork": false, + "url": "https://api.github.com/repos/tetsuroh/nand2tetris", + "forks_url": "https://api.github.com/repos/tetsuroh/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tetsuroh/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tetsuroh/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tetsuroh/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tetsuroh/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tetsuroh/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tetsuroh/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tetsuroh/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tetsuroh/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tetsuroh/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tetsuroh/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tetsuroh/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tetsuroh/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tetsuroh/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tetsuroh/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tetsuroh/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tetsuroh/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tetsuroh/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tetsuroh/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tetsuroh/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tetsuroh/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tetsuroh/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tetsuroh/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tetsuroh/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tetsuroh/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tetsuroh/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tetsuroh/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tetsuroh/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tetsuroh/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tetsuroh/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tetsuroh/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tetsuroh/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tetsuroh/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tetsuroh/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tetsuroh/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tetsuroh/nand2tetris/deployments", + "created_at": "2015-12-12T07:51:36Z", + "updated_at": "2015-12-12T07:53:33Z", + "pushed_at": "2015-12-12T08:05:30Z", + "git_url": "git://github.com/tetsuroh/nand2tetris.git", + "ssh_url": "git@github.com:tetsuroh/nand2tetris.git", + "clone_url": "https://github.com/tetsuroh/nand2tetris.git", + "svn_url": "https://github.com/tetsuroh/nand2tetris", + "homepage": null, + "size": 186, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 49497035, + "name": "nand2tetris", + "full_name": "foxish/nand2tetris", + "owner": { + "login": "foxish", + "id": 906471, + "avatar_url": "https://avatars.githubusercontent.com/u/906471?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/foxish", + "html_url": "https://github.com/foxish", + "followers_url": "https://api.github.com/users/foxish/followers", + "following_url": "https://api.github.com/users/foxish/following{/other_user}", + "gists_url": "https://api.github.com/users/foxish/gists{/gist_id}", + "starred_url": "https://api.github.com/users/foxish/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/foxish/subscriptions", + "organizations_url": "https://api.github.com/users/foxish/orgs", + "repos_url": "https://api.github.com/users/foxish/repos", + "events_url": "https://api.github.com/users/foxish/events{/privacy}", + "received_events_url": "https://api.github.com/users/foxish/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/foxish/nand2tetris", + "description": "The book which builds a computer from first principles", + "fork": false, + "url": "https://api.github.com/repos/foxish/nand2tetris", + "forks_url": "https://api.github.com/repos/foxish/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/foxish/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/foxish/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/foxish/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/foxish/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/foxish/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/foxish/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/foxish/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/foxish/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/foxish/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/foxish/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/foxish/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/foxish/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/foxish/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/foxish/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/foxish/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/foxish/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/foxish/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/foxish/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/foxish/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/foxish/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/foxish/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/foxish/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/foxish/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/foxish/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/foxish/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/foxish/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/foxish/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/foxish/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/foxish/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/foxish/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/foxish/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/foxish/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/foxish/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/foxish/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/foxish/nand2tetris/deployments", + "created_at": "2016-01-12T11:52:41Z", + "updated_at": "2016-01-12T11:56:09Z", + "pushed_at": "2016-01-16T12:10:11Z", + "git_url": "git://github.com/foxish/nand2tetris.git", + "ssh_url": "git@github.com:foxish/nand2tetris.git", + "clone_url": "https://github.com/foxish/nand2tetris.git", + "svn_url": "https://github.com/foxish/nand2tetris", + "homepage": null, + "size": 516, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 49245265, + "name": "Nand2Tetris", + "full_name": "Ra-Sedg/Nand2Tetris", + "owner": { + "login": "Ra-Sedg", + "id": 10386425, + "avatar_url": "https://avatars.githubusercontent.com/u/10386425?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Ra-Sedg", + "html_url": "https://github.com/Ra-Sedg", + "followers_url": "https://api.github.com/users/Ra-Sedg/followers", + "following_url": "https://api.github.com/users/Ra-Sedg/following{/other_user}", + "gists_url": "https://api.github.com/users/Ra-Sedg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ra-Sedg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ra-Sedg/subscriptions", + "organizations_url": "https://api.github.com/users/Ra-Sedg/orgs", + "repos_url": "https://api.github.com/users/Ra-Sedg/repos", + "events_url": "https://api.github.com/users/Ra-Sedg/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ra-Sedg/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Ra-Sedg/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Ra-Sedg/Nand2Tetris/deployments", + "created_at": "2016-01-08T02:53:26Z", + "updated_at": "2016-01-08T03:02:01Z", + "pushed_at": "2016-01-08T03:01:59Z", + "git_url": "git://github.com/Ra-Sedg/Nand2Tetris.git", + "ssh_url": "git@github.com:Ra-Sedg/Nand2Tetris.git", + "clone_url": "https://github.com/Ra-Sedg/Nand2Tetris.git", + "svn_url": "https://github.com/Ra-Sedg/Nand2Tetris", + "homepage": null, + "size": 4761, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 39862500, + "name": "nand2tetris", + "full_name": "santigl/nand2tetris", + "owner": { + "login": "santigl", + "id": 11447309, + "avatar_url": "https://avatars.githubusercontent.com/u/11447309?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/santigl", + "html_url": "https://github.com/santigl", + "followers_url": "https://api.github.com/users/santigl/followers", + "following_url": "https://api.github.com/users/santigl/following{/other_user}", + "gists_url": "https://api.github.com/users/santigl/gists{/gist_id}", + "starred_url": "https://api.github.com/users/santigl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/santigl/subscriptions", + "organizations_url": "https://api.github.com/users/santigl/orgs", + "repos_url": "https://api.github.com/users/santigl/repos", + "events_url": "https://api.github.com/users/santigl/events{/privacy}", + "received_events_url": "https://api.github.com/users/santigl/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/santigl/nand2tetris", + "description": "My implementation of the project", + "fork": false, + "url": "https://api.github.com/repos/santigl/nand2tetris", + "forks_url": "https://api.github.com/repos/santigl/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/santigl/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/santigl/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/santigl/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/santigl/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/santigl/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/santigl/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/santigl/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/santigl/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/santigl/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/santigl/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/santigl/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/santigl/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/santigl/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/santigl/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/santigl/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/santigl/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/santigl/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/santigl/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/santigl/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/santigl/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/santigl/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/santigl/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/santigl/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/santigl/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/santigl/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/santigl/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/santigl/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/santigl/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/santigl/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/santigl/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/santigl/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/santigl/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/santigl/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/santigl/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/santigl/nand2tetris/deployments", + "created_at": "2015-07-28T23:21:48Z", + "updated_at": "2016-01-12T17:00:40Z", + "pushed_at": "2016-01-12T20:04:27Z", + "git_url": "git://github.com/santigl/nand2tetris.git", + "ssh_url": "git@github.com:santigl/nand2tetris.git", + "clone_url": "https://github.com/santigl/nand2tetris.git", + "svn_url": "https://github.com/santigl/nand2tetris", + "homepage": null, + "size": 226, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 54052764, + "name": "Nand2Tetris", + "full_name": "mzolkiewski/Nand2Tetris", + "owner": { + "login": "mzolkiewski", + "id": 17296893, + "avatar_url": "https://avatars.githubusercontent.com/u/17296893?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mzolkiewski", + "html_url": "https://github.com/mzolkiewski", + "followers_url": "https://api.github.com/users/mzolkiewski/followers", + "following_url": "https://api.github.com/users/mzolkiewski/following{/other_user}", + "gists_url": "https://api.github.com/users/mzolkiewski/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mzolkiewski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mzolkiewski/subscriptions", + "organizations_url": "https://api.github.com/users/mzolkiewski/orgs", + "repos_url": "https://api.github.com/users/mzolkiewski/repos", + "events_url": "https://api.github.com/users/mzolkiewski/events{/privacy}", + "received_events_url": "https://api.github.com/users/mzolkiewski/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mzolkiewski/Nand2Tetris", + "description": "My solutions to problems in the Nand2Tetris MIT course", + "fork": false, + "url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris", + "forks_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mzolkiewski/Nand2Tetris/deployments", + "created_at": "2016-03-16T17:29:42Z", + "updated_at": "2016-03-16T17:33:46Z", + "pushed_at": "2016-03-16T17:33:45Z", + "git_url": "git://github.com/mzolkiewski/Nand2Tetris.git", + "ssh_url": "git@github.com:mzolkiewski/Nand2Tetris.git", + "clone_url": "https://github.com/mzolkiewski/Nand2Tetris.git", + "svn_url": "https://github.com/mzolkiewski/Nand2Tetris", + "homepage": null, + "size": 55, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 51406179, + "name": "nand2tetris", + "full_name": "dantzlerwolfe/nand2tetris", + "owner": { + "login": "dantzlerwolfe", + "id": 4689816, + "avatar_url": "https://avatars.githubusercontent.com/u/4689816?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dantzlerwolfe", + "html_url": "https://github.com/dantzlerwolfe", + "followers_url": "https://api.github.com/users/dantzlerwolfe/followers", + "following_url": "https://api.github.com/users/dantzlerwolfe/following{/other_user}", + "gists_url": "https://api.github.com/users/dantzlerwolfe/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dantzlerwolfe/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dantzlerwolfe/subscriptions", + "organizations_url": "https://api.github.com/users/dantzlerwolfe/orgs", + "repos_url": "https://api.github.com/users/dantzlerwolfe/repos", + "events_url": "https://api.github.com/users/dantzlerwolfe/events{/privacy}", + "received_events_url": "https://api.github.com/users/dantzlerwolfe/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dantzlerwolfe/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris", + "forks_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dantzlerwolfe/nand2tetris/deployments", + "created_at": "2016-02-09T22:44:08Z", + "updated_at": "2016-02-09T22:45:10Z", + "pushed_at": "2016-03-23T18:25:52Z", + "git_url": "git://github.com/dantzlerwolfe/nand2tetris.git", + "ssh_url": "git@github.com:dantzlerwolfe/nand2tetris.git", + "clone_url": "https://github.com/dantzlerwolfe/nand2tetris.git", + "svn_url": "https://github.com/dantzlerwolfe/nand2tetris", + "homepage": null, + "size": 133, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 37025701, + "name": "FromNandToTetris", + "full_name": "TaoZang/FromNandToTetris", + "owner": { + "login": "TaoZang", + "id": 929823, + "avatar_url": "https://avatars.githubusercontent.com/u/929823?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/TaoZang", + "html_url": "https://github.com/TaoZang", + "followers_url": "https://api.github.com/users/TaoZang/followers", + "following_url": "https://api.github.com/users/TaoZang/following{/other_user}", + "gists_url": "https://api.github.com/users/TaoZang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TaoZang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TaoZang/subscriptions", + "organizations_url": "https://api.github.com/users/TaoZang/orgs", + "repos_url": "https://api.github.com/users/TaoZang/repos", + "events_url": "https://api.github.com/users/TaoZang/events{/privacy}", + "received_events_url": "https://api.github.com/users/TaoZang/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/TaoZang/FromNandToTetris", + "description": "Implements of a bottom-up computer architecture", + "fork": false, + "url": "https://api.github.com/repos/TaoZang/FromNandToTetris", + "forks_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/forks", + "keys_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/teams", + "hooks_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/events", + "assignees_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/tags", + "blobs_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/subscription", + "commits_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/merges", + "archive_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/downloads", + "issues_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/TaoZang/FromNandToTetris/deployments", + "created_at": "2015-06-07T17:37:13Z", + "updated_at": "2016-03-03T06:57:01Z", + "pushed_at": "2016-03-24T10:29:10Z", + "git_url": "git://github.com/TaoZang/FromNandToTetris.git", + "ssh_url": "git@github.com:TaoZang/FromNandToTetris.git", + "clone_url": "https://github.com/TaoZang/FromNandToTetris.git", + "svn_url": "https://github.com/TaoZang/FromNandToTetris", + "homepage": "", + "size": 279, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 55118544, + "name": "nand2tetris_coursera", + "full_name": "LittleStupid/nand2tetris_coursera", + "owner": { + "login": "LittleStupid", + "id": 15071167, + "avatar_url": "https://avatars.githubusercontent.com/u/15071167?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/LittleStupid", + "html_url": "https://github.com/LittleStupid", + "followers_url": "https://api.github.com/users/LittleStupid/followers", + "following_url": "https://api.github.com/users/LittleStupid/following{/other_user}", + "gists_url": "https://api.github.com/users/LittleStupid/gists{/gist_id}", + "starred_url": "https://api.github.com/users/LittleStupid/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/LittleStupid/subscriptions", + "organizations_url": "https://api.github.com/users/LittleStupid/orgs", + "repos_url": "https://api.github.com/users/LittleStupid/repos", + "events_url": "https://api.github.com/users/LittleStupid/events{/privacy}", + "received_events_url": "https://api.github.com/users/LittleStupid/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/LittleStupid/nand2tetris_coursera", + "description": "Coursera Lesson", + "fork": false, + "url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera", + "forks_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/forks", + "keys_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/teams", + "hooks_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/hooks", + "issue_events_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/issues/events{/number}", + "events_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/events", + "assignees_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/assignees{/user}", + "branches_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/branches{/branch}", + "tags_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/tags", + "blobs_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/statuses/{sha}", + "languages_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/languages", + "stargazers_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/stargazers", + "contributors_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/contributors", + "subscribers_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/subscribers", + "subscription_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/subscription", + "commits_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/contents/{+path}", + "compare_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/merges", + "archive_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/downloads", + "issues_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/issues{/number}", + "pulls_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/pulls{/number}", + "milestones_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/milestones{/number}", + "notifications_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/labels{/name}", + "releases_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/releases{/id}", + "deployments_url": "https://api.github.com/repos/LittleStupid/nand2tetris_coursera/deployments", + "created_at": "2016-03-31T03:49:06Z", + "updated_at": "2016-03-31T04:16:04Z", + "pushed_at": "2016-04-03T08:46:53Z", + "git_url": "git://github.com/LittleStupid/nand2tetris_coursera.git", + "ssh_url": "git@github.com:LittleStupid/nand2tetris_coursera.git", + "clone_url": "https://github.com/LittleStupid/nand2tetris_coursera.git", + "svn_url": "https://github.com/LittleStupid/nand2tetris_coursera", + "homepage": null, + "size": 596, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 55919907, + "name": "Nand2tetris", + "full_name": "songty11/Nand2tetris", + "owner": { + "login": "songty11", + "id": 16549015, + "avatar_url": "https://avatars.githubusercontent.com/u/16549015?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/songty11", + "html_url": "https://github.com/songty11", + "followers_url": "https://api.github.com/users/songty11/followers", + "following_url": "https://api.github.com/users/songty11/following{/other_user}", + "gists_url": "https://api.github.com/users/songty11/gists{/gist_id}", + "starred_url": "https://api.github.com/users/songty11/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/songty11/subscriptions", + "organizations_url": "https://api.github.com/users/songty11/orgs", + "repos_url": "https://api.github.com/users/songty11/repos", + "events_url": "https://api.github.com/users/songty11/events{/privacy}", + "received_events_url": "https://api.github.com/users/songty11/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/songty11/Nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/songty11/Nand2tetris", + "forks_url": "https://api.github.com/repos/songty11/Nand2tetris/forks", + "keys_url": "https://api.github.com/repos/songty11/Nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/songty11/Nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/songty11/Nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/songty11/Nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/songty11/Nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/songty11/Nand2tetris/events", + "assignees_url": "https://api.github.com/repos/songty11/Nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/songty11/Nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/songty11/Nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/songty11/Nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/songty11/Nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/songty11/Nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/songty11/Nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/songty11/Nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/songty11/Nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/songty11/Nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/songty11/Nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/songty11/Nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/songty11/Nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/songty11/Nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/songty11/Nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/songty11/Nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/songty11/Nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/songty11/Nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/songty11/Nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/songty11/Nand2tetris/merges", + "archive_url": "https://api.github.com/repos/songty11/Nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/songty11/Nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/songty11/Nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/songty11/Nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/songty11/Nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/songty11/Nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/songty11/Nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/songty11/Nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/songty11/Nand2tetris/deployments", + "created_at": "2016-04-10T20:05:18Z", + "updated_at": "2016-04-10T20:05:56Z", + "pushed_at": "2016-04-13T17:14:12Z", + "git_url": "git://github.com/songty11/Nand2tetris.git", + "ssh_url": "git@github.com:songty11/Nand2tetris.git", + "clone_url": "https://github.com/songty11/Nand2tetris.git", + "svn_url": "https://github.com/songty11/Nand2tetris", + "homepage": null, + "size": 1119, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 56127435, + "name": "Nand2Tetris-solutions", + "full_name": "weezybusy/Nand2Tetris-solutions", + "owner": { + "login": "weezybusy", + "id": 9881220, + "avatar_url": "https://avatars.githubusercontent.com/u/9881220?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/weezybusy", + "html_url": "https://github.com/weezybusy", + "followers_url": "https://api.github.com/users/weezybusy/followers", + "following_url": "https://api.github.com/users/weezybusy/following{/other_user}", + "gists_url": "https://api.github.com/users/weezybusy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/weezybusy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/weezybusy/subscriptions", + "organizations_url": "https://api.github.com/users/weezybusy/orgs", + "repos_url": "https://api.github.com/users/weezybusy/repos", + "events_url": "https://api.github.com/users/weezybusy/events{/privacy}", + "received_events_url": "https://api.github.com/users/weezybusy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/weezybusy/Nand2Tetris-solutions", + "description": "Solutions to exercises from \"Nand2Tetris\" by Noam Nisan and Shimon Schocken", + "fork": false, + "url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions", + "forks_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/forks", + "keys_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/teams", + "hooks_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/hooks", + "issue_events_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/issues/events{/number}", + "events_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/events", + "assignees_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/assignees{/user}", + "branches_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/branches{/branch}", + "tags_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/tags", + "blobs_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/statuses/{sha}", + "languages_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/languages", + "stargazers_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/stargazers", + "contributors_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/contributors", + "subscribers_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/subscribers", + "subscription_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/subscription", + "commits_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/contents/{+path}", + "compare_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/merges", + "archive_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/downloads", + "issues_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/issues{/number}", + "pulls_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/pulls{/number}", + "milestones_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/milestones{/number}", + "notifications_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/labels{/name}", + "releases_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/releases{/id}", + "deployments_url": "https://api.github.com/repos/weezybusy/Nand2Tetris-solutions/deployments", + "created_at": "2016-04-13T06:39:22Z", + "updated_at": "2016-04-23T15:40:57Z", + "pushed_at": "2016-05-04T05:26:24Z", + "git_url": "git://github.com/weezybusy/Nand2Tetris-solutions.git", + "ssh_url": "git@github.com:weezybusy/Nand2Tetris-solutions.git", + "clone_url": "https://github.com/weezybusy/Nand2Tetris-solutions.git", + "svn_url": "https://github.com/weezybusy/Nand2Tetris-solutions", + "homepage": null, + "size": 14, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 59401806, + "name": "nand2tetris", + "full_name": "themindis/nand2tetris", + "owner": { + "login": "themindis", + "id": 16673007, + "avatar_url": "https://avatars.githubusercontent.com/u/16673007?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/themindis", + "html_url": "https://github.com/themindis", + "followers_url": "https://api.github.com/users/themindis/followers", + "following_url": "https://api.github.com/users/themindis/following{/other_user}", + "gists_url": "https://api.github.com/users/themindis/gists{/gist_id}", + "starred_url": "https://api.github.com/users/themindis/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/themindis/subscriptions", + "organizations_url": "https://api.github.com/users/themindis/orgs", + "repos_url": "https://api.github.com/users/themindis/repos", + "events_url": "https://api.github.com/users/themindis/events{/privacy}", + "received_events_url": "https://api.github.com/users/themindis/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/themindis/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/themindis/nand2tetris", + "forks_url": "https://api.github.com/repos/themindis/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/themindis/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/themindis/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/themindis/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/themindis/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/themindis/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/themindis/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/themindis/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/themindis/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/themindis/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/themindis/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/themindis/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/themindis/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/themindis/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/themindis/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/themindis/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/themindis/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/themindis/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/themindis/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/themindis/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/themindis/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/themindis/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/themindis/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/themindis/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/themindis/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/themindis/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/themindis/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/themindis/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/themindis/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/themindis/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/themindis/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/themindis/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/themindis/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/themindis/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/themindis/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/themindis/nand2tetris/deployments", + "created_at": "2016-05-22T08:14:49Z", + "updated_at": "2016-05-22T08:15:28Z", + "pushed_at": "2016-05-22T08:15:27Z", + "git_url": "git://github.com/themindis/nand2tetris.git", + "ssh_url": "git@github.com:themindis/nand2tetris.git", + "clone_url": "https://github.com/themindis/nand2tetris.git", + "svn_url": "https://github.com/themindis/nand2tetris", + "homepage": null, + "size": 155, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 55179792, + "name": "nand2tetris", + "full_name": "joeldudley/nand2tetris", + "owner": { + "login": "joeldudley", + "id": 8593927, + "avatar_url": "https://avatars.githubusercontent.com/u/8593927?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/joeldudley", + "html_url": "https://github.com/joeldudley", + "followers_url": "https://api.github.com/users/joeldudley/followers", + "following_url": "https://api.github.com/users/joeldudley/following{/other_user}", + "gists_url": "https://api.github.com/users/joeldudley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/joeldudley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/joeldudley/subscriptions", + "organizations_url": "https://api.github.com/users/joeldudley/orgs", + "repos_url": "https://api.github.com/users/joeldudley/repos", + "events_url": "https://api.github.com/users/joeldudley/events{/privacy}", + "received_events_url": "https://api.github.com/users/joeldudley/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/joeldudley/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/joeldudley/nand2tetris", + "forks_url": "https://api.github.com/repos/joeldudley/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/joeldudley/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/joeldudley/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/joeldudley/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/joeldudley/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/joeldudley/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/joeldudley/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/joeldudley/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/joeldudley/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/joeldudley/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/joeldudley/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/joeldudley/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/joeldudley/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/joeldudley/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/joeldudley/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/joeldudley/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/joeldudley/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/joeldudley/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/joeldudley/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/joeldudley/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/joeldudley/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/joeldudley/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/joeldudley/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/joeldudley/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/joeldudley/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/joeldudley/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/joeldudley/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/joeldudley/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/joeldudley/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/joeldudley/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/joeldudley/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/joeldudley/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/joeldudley/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/joeldudley/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/joeldudley/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/joeldudley/nand2tetris/deployments", + "created_at": "2016-03-31T20:11:06Z", + "updated_at": "2016-03-31T20:11:41Z", + "pushed_at": "2016-05-22T09:44:52Z", + "git_url": "git://github.com/joeldudley/nand2tetris.git", + "ssh_url": "git@github.com:joeldudley/nand2tetris.git", + "clone_url": "https://github.com/joeldudley/nand2tetris.git", + "svn_url": "https://github.com/joeldudley/nand2tetris", + "homepage": null, + "size": 548, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 59315967, + "name": "nand2tetris", + "full_name": "alidaka/nand2tetris", + "owner": { + "login": "alidaka", + "id": 12162158, + "avatar_url": "https://avatars.githubusercontent.com/u/12162158?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/alidaka", + "html_url": "https://github.com/alidaka", + "followers_url": "https://api.github.com/users/alidaka/followers", + "following_url": "https://api.github.com/users/alidaka/following{/other_user}", + "gists_url": "https://api.github.com/users/alidaka/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alidaka/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alidaka/subscriptions", + "organizations_url": "https://api.github.com/users/alidaka/orgs", + "repos_url": "https://api.github.com/users/alidaka/repos", + "events_url": "https://api.github.com/users/alidaka/events{/privacy}", + "received_events_url": "https://api.github.com/users/alidaka/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/alidaka/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/alidaka/nand2tetris", + "forks_url": "https://api.github.com/repos/alidaka/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/alidaka/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alidaka/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alidaka/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/alidaka/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/alidaka/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/alidaka/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/alidaka/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/alidaka/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/alidaka/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/alidaka/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alidaka/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alidaka/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alidaka/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alidaka/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alidaka/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/alidaka/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/alidaka/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/alidaka/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/alidaka/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/alidaka/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alidaka/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alidaka/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alidaka/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alidaka/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/alidaka/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alidaka/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/alidaka/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alidaka/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/alidaka/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/alidaka/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alidaka/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alidaka/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alidaka/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/alidaka/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/alidaka/nand2tetris/deployments", + "created_at": "2016-05-20T18:09:12Z", + "updated_at": "2016-05-20T18:32:30Z", + "pushed_at": "2016-05-20T19:17:50Z", + "git_url": "git://github.com/alidaka/nand2tetris.git", + "ssh_url": "git@github.com:alidaka/nand2tetris.git", + "clone_url": "https://github.com/alidaka/nand2tetris.git", + "svn_url": "https://github.com/alidaka/nand2tetris", + "homepage": null, + "size": 154, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 52871787, + "name": "nand2Tetris", + "full_name": "WIZARD-CXY/nand2Tetris", + "owner": { + "login": "WIZARD-CXY", + "id": 2142864, + "avatar_url": "https://avatars.githubusercontent.com/u/2142864?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/WIZARD-CXY", + "html_url": "https://github.com/WIZARD-CXY", + "followers_url": "https://api.github.com/users/WIZARD-CXY/followers", + "following_url": "https://api.github.com/users/WIZARD-CXY/following{/other_user}", + "gists_url": "https://api.github.com/users/WIZARD-CXY/gists{/gist_id}", + "starred_url": "https://api.github.com/users/WIZARD-CXY/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/WIZARD-CXY/subscriptions", + "organizations_url": "https://api.github.com/users/WIZARD-CXY/orgs", + "repos_url": "https://api.github.com/users/WIZARD-CXY/repos", + "events_url": "https://api.github.com/users/WIZARD-CXY/events{/privacy}", + "received_events_url": "https://api.github.com/users/WIZARD-CXY/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/WIZARD-CXY/nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris", + "forks_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/WIZARD-CXY/nand2Tetris/deployments", + "created_at": "2016-03-01T11:26:30Z", + "updated_at": "2016-03-01T11:28:00Z", + "pushed_at": "2016-05-14T04:00:46Z", + "git_url": "git://github.com/WIZARD-CXY/nand2Tetris.git", + "ssh_url": "git@github.com:WIZARD-CXY/nand2Tetris.git", + "clone_url": "https://github.com/WIZARD-CXY/nand2Tetris.git", + "svn_url": "https://github.com/WIZARD-CXY/nand2Tetris", + "homepage": null, + "size": 1253, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 58726410, + "name": "Nand2Tetris-homeworks", + "full_name": "TrungACZNE/Nand2Tetris-homeworks", + "owner": { + "login": "TrungACZNE", + "id": 1381629, + "avatar_url": "https://avatars.githubusercontent.com/u/1381629?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/TrungACZNE", + "html_url": "https://github.com/TrungACZNE", + "followers_url": "https://api.github.com/users/TrungACZNE/followers", + "following_url": "https://api.github.com/users/TrungACZNE/following{/other_user}", + "gists_url": "https://api.github.com/users/TrungACZNE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TrungACZNE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TrungACZNE/subscriptions", + "organizations_url": "https://api.github.com/users/TrungACZNE/orgs", + "repos_url": "https://api.github.com/users/TrungACZNE/repos", + "events_url": "https://api.github.com/users/TrungACZNE/events{/privacy}", + "received_events_url": "https://api.github.com/users/TrungACZNE/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/TrungACZNE/Nand2Tetris-homeworks", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks", + "forks_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/forks", + "keys_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/teams", + "hooks_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/hooks", + "issue_events_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/issues/events{/number}", + "events_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/events", + "assignees_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/assignees{/user}", + "branches_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/branches{/branch}", + "tags_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/tags", + "blobs_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/statuses/{sha}", + "languages_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/languages", + "stargazers_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/stargazers", + "contributors_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/contributors", + "subscribers_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/subscribers", + "subscription_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/subscription", + "commits_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/contents/{+path}", + "compare_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/merges", + "archive_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/downloads", + "issues_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/issues{/number}", + "pulls_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/pulls{/number}", + "milestones_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/milestones{/number}", + "notifications_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/labels{/name}", + "releases_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/releases{/id}", + "deployments_url": "https://api.github.com/repos/TrungACZNE/Nand2Tetris-homeworks/deployments", + "created_at": "2016-05-13T09:56:18Z", + "updated_at": "2016-05-16T15:28:52Z", + "pushed_at": "2016-06-10T15:34:35Z", + "git_url": "git://github.com/TrungACZNE/Nand2Tetris-homeworks.git", + "ssh_url": "git@github.com:TrungACZNE/Nand2Tetris-homeworks.git", + "clone_url": "https://github.com/TrungACZNE/Nand2Tetris-homeworks.git", + "svn_url": "https://github.com/TrungACZNE/Nand2Tetris-homeworks", + "homepage": null, + "size": 20, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 60934654, + "name": "Nand2Tetris", + "full_name": "antonydeepak/Nand2Tetris", + "owner": { + "login": "antonydeepak", + "id": 1146580, + "avatar_url": "https://avatars.githubusercontent.com/u/1146580?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/antonydeepak", + "html_url": "https://github.com/antonydeepak", + "followers_url": "https://api.github.com/users/antonydeepak/followers", + "following_url": "https://api.github.com/users/antonydeepak/following{/other_user}", + "gists_url": "https://api.github.com/users/antonydeepak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/antonydeepak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antonydeepak/subscriptions", + "organizations_url": "https://api.github.com/users/antonydeepak/orgs", + "repos_url": "https://api.github.com/users/antonydeepak/repos", + "events_url": "https://api.github.com/users/antonydeepak/events{/privacy}", + "received_events_url": "https://api.github.com/users/antonydeepak/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/antonydeepak/Nand2Tetris", + "description": "Reference project implementation for the course at nand2tetris.org ", + "fork": false, + "url": "https://api.github.com/repos/antonydeepak/Nand2Tetris", + "forks_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/antonydeepak/Nand2Tetris/deployments", + "created_at": "2016-06-12T01:04:39Z", + "updated_at": "2016-06-12T01:29:51Z", + "pushed_at": "2016-06-12T01:29:49Z", + "git_url": "git://github.com/antonydeepak/Nand2Tetris.git", + "ssh_url": "git@github.com:antonydeepak/Nand2Tetris.git", + "clone_url": "https://github.com/antonydeepak/Nand2Tetris.git", + "svn_url": "https://github.com/antonydeepak/Nand2Tetris", + "homepage": null, + "size": 198, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 49381381, + "name": "nand2tetris", + "full_name": "MC-Winkler/nand2tetris", + "owner": { + "login": "MC-Winkler", + "id": 6421129, + "avatar_url": "https://avatars.githubusercontent.com/u/6421129?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MC-Winkler", + "html_url": "https://github.com/MC-Winkler", + "followers_url": "https://api.github.com/users/MC-Winkler/followers", + "following_url": "https://api.github.com/users/MC-Winkler/following{/other_user}", + "gists_url": "https://api.github.com/users/MC-Winkler/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MC-Winkler/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MC-Winkler/subscriptions", + "organizations_url": "https://api.github.com/users/MC-Winkler/orgs", + "repos_url": "https://api.github.com/users/MC-Winkler/repos", + "events_url": "https://api.github.com/users/MC-Winkler/events{/privacy}", + "received_events_url": "https://api.github.com/users/MC-Winkler/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MC-Winkler/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/MC-Winkler/nand2tetris", + "forks_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/MC-Winkler/nand2tetris/deployments", + "created_at": "2016-01-10T19:18:08Z", + "updated_at": "2016-01-12T16:56:37Z", + "pushed_at": "2016-06-21T01:14:35Z", + "git_url": "git://github.com/MC-Winkler/nand2tetris.git", + "ssh_url": "git@github.com:MC-Winkler/nand2tetris.git", + "clone_url": "https://github.com/MC-Winkler/nand2tetris.git", + "svn_url": "https://github.com/MC-Winkler/nand2tetris", + "homepage": null, + "size": 1959, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 61630687, + "name": "nand2tetris", + "full_name": "weilu/nand2tetris", + "owner": { + "login": "weilu", + "id": 412533, + "avatar_url": "https://avatars.githubusercontent.com/u/412533?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/weilu", + "html_url": "https://github.com/weilu", + "followers_url": "https://api.github.com/users/weilu/followers", + "following_url": "https://api.github.com/users/weilu/following{/other_user}", + "gists_url": "https://api.github.com/users/weilu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/weilu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/weilu/subscriptions", + "organizations_url": "https://api.github.com/users/weilu/orgs", + "repos_url": "https://api.github.com/users/weilu/repos", + "events_url": "https://api.github.com/users/weilu/events{/privacy}", + "received_events_url": "https://api.github.com/users/weilu/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/weilu/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/weilu/nand2tetris", + "forks_url": "https://api.github.com/repos/weilu/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/weilu/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/weilu/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/weilu/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/weilu/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/weilu/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/weilu/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/weilu/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/weilu/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/weilu/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/weilu/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/weilu/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/weilu/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/weilu/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/weilu/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/weilu/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/weilu/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/weilu/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/weilu/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/weilu/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/weilu/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/weilu/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/weilu/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/weilu/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/weilu/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/weilu/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/weilu/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/weilu/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/weilu/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/weilu/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/weilu/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/weilu/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/weilu/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/weilu/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/weilu/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/weilu/nand2tetris/deployments", + "created_at": "2016-06-21T12:04:47Z", + "updated_at": "2016-06-21T12:05:09Z", + "pushed_at": "2016-06-21T12:05:07Z", + "git_url": "git://github.com/weilu/nand2tetris.git", + "ssh_url": "git@github.com:weilu/nand2tetris.git", + "clone_url": "https://github.com/weilu/nand2tetris.git", + "svn_url": "https://github.com/weilu/nand2tetris", + "homepage": null, + "size": 160, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 60439308, + "name": "nand2tetris", + "full_name": "k0sk/nand2tetris", + "owner": { + "login": "k0sk", + "id": 3438060, + "avatar_url": "https://avatars.githubusercontent.com/u/3438060?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/k0sk", + "html_url": "https://github.com/k0sk", + "followers_url": "https://api.github.com/users/k0sk/followers", + "following_url": "https://api.github.com/users/k0sk/following{/other_user}", + "gists_url": "https://api.github.com/users/k0sk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/k0sk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/k0sk/subscriptions", + "organizations_url": "https://api.github.com/users/k0sk/orgs", + "repos_url": "https://api.github.com/users/k0sk/repos", + "events_url": "https://api.github.com/users/k0sk/events{/privacy}", + "received_events_url": "https://api.github.com/users/k0sk/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/k0sk/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/k0sk/nand2tetris", + "forks_url": "https://api.github.com/repos/k0sk/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/k0sk/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/k0sk/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/k0sk/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/k0sk/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/k0sk/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/k0sk/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/k0sk/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/k0sk/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/k0sk/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/k0sk/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/k0sk/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/k0sk/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/k0sk/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/k0sk/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/k0sk/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/k0sk/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/k0sk/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/k0sk/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/k0sk/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/k0sk/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/k0sk/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/k0sk/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/k0sk/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/k0sk/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/k0sk/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/k0sk/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/k0sk/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/k0sk/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/k0sk/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/k0sk/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/k0sk/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/k0sk/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/k0sk/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/k0sk/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/k0sk/nand2tetris/deployments", + "created_at": "2016-06-05T02:19:07Z", + "updated_at": "2016-06-17T13:17:35Z", + "pushed_at": "2016-06-12T09:22:28Z", + "git_url": "git://github.com/k0sk/nand2tetris.git", + "ssh_url": "git@github.com:k0sk/nand2tetris.git", + "clone_url": "https://github.com/k0sk/nand2tetris.git", + "svn_url": "https://github.com/k0sk/nand2tetris", + "homepage": null, + "size": 512, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 61415691, + "name": "Nand2Tetris", + "full_name": "GuillermoLopezJr/Nand2Tetris", + "owner": { + "login": "GuillermoLopezJr", + "id": 14910362, + "avatar_url": "https://avatars.githubusercontent.com/u/14910362?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/GuillermoLopezJr", + "html_url": "https://github.com/GuillermoLopezJr", + "followers_url": "https://api.github.com/users/GuillermoLopezJr/followers", + "following_url": "https://api.github.com/users/GuillermoLopezJr/following{/other_user}", + "gists_url": "https://api.github.com/users/GuillermoLopezJr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/GuillermoLopezJr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GuillermoLopezJr/subscriptions", + "organizations_url": "https://api.github.com/users/GuillermoLopezJr/orgs", + "repos_url": "https://api.github.com/users/GuillermoLopezJr/repos", + "events_url": "https://api.github.com/users/GuillermoLopezJr/events{/privacy}", + "received_events_url": "https://api.github.com/users/GuillermoLopezJr/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/GuillermoLopezJr/Nand2Tetris", + "description": "Projects for Nand2Tetris website", + "fork": false, + "url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris", + "forks_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/GuillermoLopezJr/Nand2Tetris/deployments", + "created_at": "2016-06-18T03:48:18Z", + "updated_at": "2016-06-21T18:13:32Z", + "pushed_at": "2016-06-21T18:16:28Z", + "git_url": "git://github.com/GuillermoLopezJr/Nand2Tetris.git", + "ssh_url": "git@github.com:GuillermoLopezJr/Nand2Tetris.git", + "clone_url": "https://github.com/GuillermoLopezJr/Nand2Tetris.git", + "svn_url": "https://github.com/GuillermoLopezJr/Nand2Tetris", + "homepage": null, + "size": 18, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 61677901, + "name": "nand2Tetris", + "full_name": "jsutterfield/nand2Tetris", + "owner": { + "login": "jsutterfield", + "id": 1657792, + "avatar_url": "https://avatars.githubusercontent.com/u/1657792?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jsutterfield", + "html_url": "https://github.com/jsutterfield", + "followers_url": "https://api.github.com/users/jsutterfield/followers", + "following_url": "https://api.github.com/users/jsutterfield/following{/other_user}", + "gists_url": "https://api.github.com/users/jsutterfield/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jsutterfield/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jsutterfield/subscriptions", + "organizations_url": "https://api.github.com/users/jsutterfield/orgs", + "repos_url": "https://api.github.com/users/jsutterfield/repos", + "events_url": "https://api.github.com/users/jsutterfield/events{/privacy}", + "received_events_url": "https://api.github.com/users/jsutterfield/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jsutterfield/nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jsutterfield/nand2Tetris", + "forks_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jsutterfield/nand2Tetris/deployments", + "created_at": "2016-06-22T01:03:02Z", + "updated_at": "2016-06-22T01:04:45Z", + "pushed_at": "2016-06-22T01:04:43Z", + "git_url": "git://github.com/jsutterfield/nand2Tetris.git", + "ssh_url": "git@github.com:jsutterfield/nand2Tetris.git", + "clone_url": "https://github.com/jsutterfield/nand2Tetris.git", + "svn_url": "https://github.com/jsutterfield/nand2Tetris", + "homepage": null, + "size": 521, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2323122 + }, + { + "id": 8134533, + "name": "nand2tetris", + "full_name": "hubbazoot/nand2tetris", + "owner": { + "login": "hubbazoot", + "id": 2689544, + "avatar_url": "https://avatars.githubusercontent.com/u/2689544?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hubbazoot", + "html_url": "https://github.com/hubbazoot", + "followers_url": "https://api.github.com/users/hubbazoot/followers", + "following_url": "https://api.github.com/users/hubbazoot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubbazoot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubbazoot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubbazoot/subscriptions", + "organizations_url": "https://api.github.com/users/hubbazoot/orgs", + "repos_url": "https://api.github.com/users/hubbazoot/repos", + "events_url": "https://api.github.com/users/hubbazoot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubbazoot/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hubbazoot/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/hubbazoot/nand2tetris", + "forks_url": "https://api.github.com/repos/hubbazoot/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/hubbazoot/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hubbazoot/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hubbazoot/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/hubbazoot/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/hubbazoot/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/hubbazoot/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/hubbazoot/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/hubbazoot/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/hubbazoot/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/hubbazoot/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hubbazoot/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hubbazoot/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hubbazoot/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hubbazoot/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hubbazoot/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/hubbazoot/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/hubbazoot/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/hubbazoot/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/hubbazoot/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/hubbazoot/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hubbazoot/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hubbazoot/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hubbazoot/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hubbazoot/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/hubbazoot/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hubbazoot/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/hubbazoot/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hubbazoot/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/hubbazoot/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/hubbazoot/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hubbazoot/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hubbazoot/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hubbazoot/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/hubbazoot/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/hubbazoot/nand2tetris/deployments", + "created_at": "2013-02-11T08:08:09Z", + "updated_at": "2014-05-22T07:44:45Z", + "pushed_at": "2013-02-11T09:30:53Z", + "git_url": "git://github.com/hubbazoot/nand2tetris.git", + "ssh_url": "git@github.com:hubbazoot/nand2tetris.git", + "clone_url": "https://github.com/hubbazoot/nand2tetris.git", + "svn_url": "https://github.com/hubbazoot/nand2tetris", + "homepage": null, + "size": 656, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 11039175, + "name": "nand2tetris", + "full_name": "GreenOlvi/nand2tetris", + "owner": { + "login": "GreenOlvi", + "id": 1195763, + "avatar_url": "https://avatars.githubusercontent.com/u/1195763?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/GreenOlvi", + "html_url": "https://github.com/GreenOlvi", + "followers_url": "https://api.github.com/users/GreenOlvi/followers", + "following_url": "https://api.github.com/users/GreenOlvi/following{/other_user}", + "gists_url": "https://api.github.com/users/GreenOlvi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/GreenOlvi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GreenOlvi/subscriptions", + "organizations_url": "https://api.github.com/users/GreenOlvi/orgs", + "repos_url": "https://api.github.com/users/GreenOlvi/repos", + "events_url": "https://api.github.com/users/GreenOlvi/events{/privacy}", + "received_events_url": "https://api.github.com/users/GreenOlvi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/GreenOlvi/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/GreenOlvi/nand2tetris", + "forks_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/GreenOlvi/nand2tetris/deployments", + "created_at": "2013-06-28T21:57:00Z", + "updated_at": "2013-11-03T13:39:58Z", + "pushed_at": "2013-11-03T13:39:53Z", + "git_url": "git://github.com/GreenOlvi/nand2tetris.git", + "ssh_url": "git@github.com:GreenOlvi/nand2tetris.git", + "clone_url": "https://github.com/GreenOlvi/nand2tetris.git", + "svn_url": "https://github.com/GreenOlvi/nand2tetris", + "homepage": null, + "size": 348, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 11878639, + "name": "nand-2-tetris", + "full_name": "pmenon/nand-2-tetris", + "owner": { + "login": "pmenon", + "id": 243434, + "avatar_url": "https://avatars.githubusercontent.com/u/243434?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pmenon", + "html_url": "https://github.com/pmenon", + "followers_url": "https://api.github.com/users/pmenon/followers", + "following_url": "https://api.github.com/users/pmenon/following{/other_user}", + "gists_url": "https://api.github.com/users/pmenon/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pmenon/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pmenon/subscriptions", + "organizations_url": "https://api.github.com/users/pmenon/orgs", + "repos_url": "https://api.github.com/users/pmenon/repos", + "events_url": "https://api.github.com/users/pmenon/events{/privacy}", + "received_events_url": "https://api.github.com/users/pmenon/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/pmenon/nand-2-tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/pmenon/nand-2-tetris", + "forks_url": "https://api.github.com/repos/pmenon/nand-2-tetris/forks", + "keys_url": "https://api.github.com/repos/pmenon/nand-2-tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/pmenon/nand-2-tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/pmenon/nand-2-tetris/teams", + "hooks_url": "https://api.github.com/repos/pmenon/nand-2-tetris/hooks", + "issue_events_url": "https://api.github.com/repos/pmenon/nand-2-tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/pmenon/nand-2-tetris/events", + "assignees_url": "https://api.github.com/repos/pmenon/nand-2-tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/pmenon/nand-2-tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/pmenon/nand-2-tetris/tags", + "blobs_url": "https://api.github.com/repos/pmenon/nand-2-tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/pmenon/nand-2-tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/pmenon/nand-2-tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/pmenon/nand-2-tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/pmenon/nand-2-tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/pmenon/nand-2-tetris/languages", + "stargazers_url": "https://api.github.com/repos/pmenon/nand-2-tetris/stargazers", + "contributors_url": "https://api.github.com/repos/pmenon/nand-2-tetris/contributors", + "subscribers_url": "https://api.github.com/repos/pmenon/nand-2-tetris/subscribers", + "subscription_url": "https://api.github.com/repos/pmenon/nand-2-tetris/subscription", + "commits_url": "https://api.github.com/repos/pmenon/nand-2-tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/pmenon/nand-2-tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/pmenon/nand-2-tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/pmenon/nand-2-tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/pmenon/nand-2-tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/pmenon/nand-2-tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/pmenon/nand-2-tetris/merges", + "archive_url": "https://api.github.com/repos/pmenon/nand-2-tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/pmenon/nand-2-tetris/downloads", + "issues_url": "https://api.github.com/repos/pmenon/nand-2-tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/pmenon/nand-2-tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/pmenon/nand-2-tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/pmenon/nand-2-tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/pmenon/nand-2-tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/pmenon/nand-2-tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/pmenon/nand-2-tetris/deployments", + "created_at": "2013-08-04T13:00:17Z", + "updated_at": "2014-02-28T23:47:24Z", + "pushed_at": "2013-08-29T02:41:02Z", + "git_url": "git://github.com/pmenon/nand-2-tetris.git", + "ssh_url": "git@github.com:pmenon/nand-2-tetris.git", + "clone_url": "https://github.com/pmenon/nand-2-tetris.git", + "svn_url": "https://github.com/pmenon/nand-2-tetris", + "homepage": null, + "size": 664, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 12645423, + "name": "nand2tetris", + "full_name": "thomcom/nand2tetris", + "owner": { + "login": "thomcom", + "id": 410931, + "avatar_url": "https://avatars.githubusercontent.com/u/410931?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thomcom", + "html_url": "https://github.com/thomcom", + "followers_url": "https://api.github.com/users/thomcom/followers", + "following_url": "https://api.github.com/users/thomcom/following{/other_user}", + "gists_url": "https://api.github.com/users/thomcom/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thomcom/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thomcom/subscriptions", + "organizations_url": "https://api.github.com/users/thomcom/orgs", + "repos_url": "https://api.github.com/users/thomcom/repos", + "events_url": "https://api.github.com/users/thomcom/events{/privacy}", + "received_events_url": "https://api.github.com/users/thomcom/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/thomcom/nand2tetris", + "description": "Coursework for nand2tetris Elements of Computing Systems book", + "fork": false, + "url": "https://api.github.com/repos/thomcom/nand2tetris", + "forks_url": "https://api.github.com/repos/thomcom/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/thomcom/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/thomcom/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/thomcom/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/thomcom/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/thomcom/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/thomcom/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/thomcom/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/thomcom/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/thomcom/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/thomcom/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/thomcom/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/thomcom/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/thomcom/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/thomcom/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/thomcom/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/thomcom/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/thomcom/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/thomcom/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/thomcom/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/thomcom/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/thomcom/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/thomcom/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/thomcom/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/thomcom/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/thomcom/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/thomcom/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/thomcom/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/thomcom/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/thomcom/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/thomcom/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/thomcom/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/thomcom/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/thomcom/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/thomcom/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/thomcom/nand2tetris/deployments", + "created_at": "2013-09-06T14:01:49Z", + "updated_at": "2013-10-10T17:38:07Z", + "pushed_at": "2013-10-10T17:38:04Z", + "git_url": "git://github.com/thomcom/nand2tetris.git", + "ssh_url": "git@github.com:thomcom/nand2tetris.git", + "clone_url": "https://github.com/thomcom/nand2tetris.git", + "svn_url": "https://github.com/thomcom/nand2tetris", + "homepage": null, + "size": 292, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 13973583, + "name": "nand2tetris", + "full_name": "DArtagan/nand2tetris", + "owner": { + "login": "DArtagan", + "id": 69908, + "avatar_url": "https://avatars.githubusercontent.com/u/69908?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/DArtagan", + "html_url": "https://github.com/DArtagan", + "followers_url": "https://api.github.com/users/DArtagan/followers", + "following_url": "https://api.github.com/users/DArtagan/following{/other_user}", + "gists_url": "https://api.github.com/users/DArtagan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DArtagan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DArtagan/subscriptions", + "organizations_url": "https://api.github.com/users/DArtagan/orgs", + "repos_url": "https://api.github.com/users/DArtagan/repos", + "events_url": "https://api.github.com/users/DArtagan/events{/privacy}", + "received_events_url": "https://api.github.com/users/DArtagan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/DArtagan/nand2tetris", + "description": "nand2tetris projcects for Elements of Computing class", + "fork": false, + "url": "https://api.github.com/repos/DArtagan/nand2tetris", + "forks_url": "https://api.github.com/repos/DArtagan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/DArtagan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/DArtagan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/DArtagan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/DArtagan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/DArtagan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/DArtagan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/DArtagan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/DArtagan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/DArtagan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/DArtagan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/DArtagan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/DArtagan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/DArtagan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/DArtagan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/DArtagan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/DArtagan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/DArtagan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/DArtagan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/DArtagan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/DArtagan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/DArtagan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/DArtagan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/DArtagan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/DArtagan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/DArtagan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/DArtagan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/DArtagan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/DArtagan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/DArtagan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/DArtagan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/DArtagan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/DArtagan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/DArtagan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/DArtagan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/DArtagan/nand2tetris/deployments", + "created_at": "2013-10-30T01:14:11Z", + "updated_at": "2013-12-02T08:10:27Z", + "pushed_at": "2013-12-02T08:10:24Z", + "git_url": "git://github.com/DArtagan/nand2tetris.git", + "ssh_url": "git@github.com:DArtagan/nand2tetris.git", + "clone_url": "https://github.com/DArtagan/nand2tetris.git", + "svn_url": "https://github.com/DArtagan/nand2tetris", + "homepage": null, + "size": 1056, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 16328982, + "name": "nand2tetris", + "full_name": "arxprimoris/nand2tetris", + "owner": { + "login": "arxprimoris", + "id": 2523174, + "avatar_url": "https://avatars.githubusercontent.com/u/2523174?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/arxprimoris", + "html_url": "https://github.com/arxprimoris", + "followers_url": "https://api.github.com/users/arxprimoris/followers", + "following_url": "https://api.github.com/users/arxprimoris/following{/other_user}", + "gists_url": "https://api.github.com/users/arxprimoris/gists{/gist_id}", + "starred_url": "https://api.github.com/users/arxprimoris/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/arxprimoris/subscriptions", + "organizations_url": "https://api.github.com/users/arxprimoris/orgs", + "repos_url": "https://api.github.com/users/arxprimoris/repos", + "events_url": "https://api.github.com/users/arxprimoris/events{/privacy}", + "received_events_url": "https://api.github.com/users/arxprimoris/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/arxprimoris/nand2tetris", + "description": "nand2tetris Project", + "fork": false, + "url": "https://api.github.com/repos/arxprimoris/nand2tetris", + "forks_url": "https://api.github.com/repos/arxprimoris/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/arxprimoris/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/arxprimoris/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/arxprimoris/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/arxprimoris/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/arxprimoris/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/arxprimoris/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/arxprimoris/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/arxprimoris/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/arxprimoris/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/arxprimoris/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/arxprimoris/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/arxprimoris/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/arxprimoris/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/arxprimoris/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/arxprimoris/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/arxprimoris/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/arxprimoris/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/arxprimoris/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/arxprimoris/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/arxprimoris/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/arxprimoris/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/arxprimoris/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/arxprimoris/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/arxprimoris/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/arxprimoris/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/arxprimoris/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/arxprimoris/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/arxprimoris/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/arxprimoris/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/arxprimoris/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/arxprimoris/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/arxprimoris/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/arxprimoris/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/arxprimoris/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/arxprimoris/nand2tetris/deployments", + "created_at": "2014-01-28T22:56:47Z", + "updated_at": "2014-01-28T23:05:16Z", + "pushed_at": "2014-01-28T23:05:16Z", + "git_url": "git://github.com/arxprimoris/nand2tetris.git", + "ssh_url": "git@github.com:arxprimoris/nand2tetris.git", + "clone_url": "https://github.com/arxprimoris/nand2tetris.git", + "svn_url": "https://github.com/arxprimoris/nand2tetris", + "homepage": null, + "size": 152, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 14638634, + "name": "nand2tetris", + "full_name": "bananahammmock/nand2tetris", + "owner": { + "login": "bananahammmock", + "id": 4556177, + "avatar_url": "https://avatars.githubusercontent.com/u/4556177?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bananahammmock", + "html_url": "https://github.com/bananahammmock", + "followers_url": "https://api.github.com/users/bananahammmock/followers", + "following_url": "https://api.github.com/users/bananahammmock/following{/other_user}", + "gists_url": "https://api.github.com/users/bananahammmock/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bananahammmock/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bananahammmock/subscriptions", + "organizations_url": "https://api.github.com/users/bananahammmock/orgs", + "repos_url": "https://api.github.com/users/bananahammmock/repos", + "events_url": "https://api.github.com/users/bananahammmock/events{/privacy}", + "received_events_url": "https://api.github.com/users/bananahammmock/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bananahammmock/nand2tetris", + "description": "projects for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/bananahammmock/nand2tetris", + "forks_url": "https://api.github.com/repos/bananahammmock/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bananahammmock/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bananahammmock/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bananahammmock/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bananahammmock/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bananahammmock/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bananahammmock/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bananahammmock/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bananahammmock/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bananahammmock/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bananahammmock/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bananahammmock/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bananahammmock/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bananahammmock/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bananahammmock/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bananahammmock/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bananahammmock/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bananahammmock/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bananahammmock/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bananahammmock/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bananahammmock/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bananahammmock/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bananahammmock/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bananahammmock/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bananahammmock/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bananahammmock/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bananahammmock/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bananahammmock/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bananahammmock/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bananahammmock/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bananahammmock/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bananahammmock/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bananahammmock/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bananahammmock/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bananahammmock/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bananahammmock/nand2tetris/deployments", + "created_at": "2013-11-23T07:48:59Z", + "updated_at": "2013-11-23T10:02:07Z", + "pushed_at": "2013-11-23T10:02:04Z", + "git_url": "git://github.com/bananahammmock/nand2tetris.git", + "ssh_url": "git@github.com:bananahammmock/nand2tetris.git", + "clone_url": "https://github.com/bananahammmock/nand2tetris.git", + "svn_url": "https://github.com/bananahammmock/nand2tetris", + "homepage": null, + "size": 264, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 16639077, + "name": "nand2tetris", + "full_name": "matklad/nand2tetris", + "owner": { + "login": "matklad", + "id": 1711539, + "avatar_url": "https://avatars.githubusercontent.com/u/1711539?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/matklad", + "html_url": "https://github.com/matklad", + "followers_url": "https://api.github.com/users/matklad/followers", + "following_url": "https://api.github.com/users/matklad/following{/other_user}", + "gists_url": "https://api.github.com/users/matklad/gists{/gist_id}", + "starred_url": "https://api.github.com/users/matklad/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/matklad/subscriptions", + "organizations_url": "https://api.github.com/users/matklad/orgs", + "repos_url": "https://api.github.com/users/matklad/repos", + "events_url": "https://api.github.com/users/matklad/events{/privacy}", + "received_events_url": "https://api.github.com/users/matklad/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/matklad/nand2tetris", + "description": "Enjoying nand2tetris(http://www.nand2tetris.org/) course", + "fork": false, + "url": "https://api.github.com/repos/matklad/nand2tetris", + "forks_url": "https://api.github.com/repos/matklad/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/matklad/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/matklad/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/matklad/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/matklad/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/matklad/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/matklad/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/matklad/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/matklad/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/matklad/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/matklad/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/matklad/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/matklad/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/matklad/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/matklad/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/matklad/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/matklad/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/matklad/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/matklad/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/matklad/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/matklad/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/matklad/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/matklad/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/matklad/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/matklad/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/matklad/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/matklad/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/matklad/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/matklad/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/matklad/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/matklad/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/matklad/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/matklad/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/matklad/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/matklad/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/matklad/nand2tetris/deployments", + "created_at": "2014-02-08T08:14:44Z", + "updated_at": "2014-02-08T14:59:28Z", + "pushed_at": "2014-02-08T14:59:28Z", + "git_url": "git://github.com/matklad/nand2tetris.git", + "ssh_url": "git@github.com:matklad/nand2tetris.git", + "clone_url": "https://github.com/matklad/nand2tetris.git", + "svn_url": "https://github.com/matklad/nand2tetris", + "homepage": null, + "size": 656, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 17370144, + "name": "nand2tetris", + "full_name": "orensam/nand2tetris", + "owner": { + "login": "orensam", + "id": 2693737, + "avatar_url": "https://avatars.githubusercontent.com/u/2693737?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/orensam", + "html_url": "https://github.com/orensam", + "followers_url": "https://api.github.com/users/orensam/followers", + "following_url": "https://api.github.com/users/orensam/following{/other_user}", + "gists_url": "https://api.github.com/users/orensam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/orensam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/orensam/subscriptions", + "organizations_url": "https://api.github.com/users/orensam/orgs", + "repos_url": "https://api.github.com/users/orensam/repos", + "events_url": "https://api.github.com/users/orensam/events{/privacy}", + "received_events_url": "https://api.github.com/users/orensam/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/orensam/nand2tetris", + "description": "nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/orensam/nand2tetris", + "forks_url": "https://api.github.com/repos/orensam/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/orensam/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/orensam/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/orensam/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/orensam/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/orensam/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/orensam/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/orensam/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/orensam/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/orensam/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/orensam/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/orensam/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/orensam/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/orensam/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/orensam/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/orensam/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/orensam/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/orensam/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/orensam/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/orensam/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/orensam/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/orensam/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/orensam/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/orensam/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/orensam/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/orensam/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/orensam/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/orensam/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/orensam/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/orensam/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/orensam/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/orensam/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/orensam/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/orensam/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/orensam/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/orensam/nand2tetris/deployments", + "created_at": "2014-03-03T15:27:08Z", + "updated_at": "2014-10-28T10:20:38Z", + "pushed_at": "2014-10-28T10:20:37Z", + "git_url": "git://github.com/orensam/nand2tetris.git", + "ssh_url": "git@github.com:orensam/nand2tetris.git", + "clone_url": "https://github.com/orensam/nand2tetris.git", + "svn_url": "https://github.com/orensam/nand2tetris", + "homepage": null, + "size": 1852, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 18173012, + "name": "nand2tetris", + "full_name": "tamarl02/nand2tetris", + "owner": { + "login": "tamarl02", + "id": 6704978, + "avatar_url": "https://avatars.githubusercontent.com/u/6704978?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tamarl02", + "html_url": "https://github.com/tamarl02", + "followers_url": "https://api.github.com/users/tamarl02/followers", + "following_url": "https://api.github.com/users/tamarl02/following{/other_user}", + "gists_url": "https://api.github.com/users/tamarl02/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tamarl02/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tamarl02/subscriptions", + "organizations_url": "https://api.github.com/users/tamarl02/orgs", + "repos_url": "https://api.github.com/users/tamarl02/repos", + "events_url": "https://api.github.com/users/tamarl02/events{/privacy}", + "received_events_url": "https://api.github.com/users/tamarl02/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tamarl02/nand2tetris", + "description": "nand2tetris projects", + "fork": false, + "url": "https://api.github.com/repos/tamarl02/nand2tetris", + "forks_url": "https://api.github.com/repos/tamarl02/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tamarl02/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tamarl02/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tamarl02/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tamarl02/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tamarl02/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tamarl02/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tamarl02/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tamarl02/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tamarl02/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tamarl02/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tamarl02/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tamarl02/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tamarl02/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tamarl02/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tamarl02/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tamarl02/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tamarl02/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tamarl02/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tamarl02/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tamarl02/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tamarl02/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tamarl02/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tamarl02/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tamarl02/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tamarl02/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tamarl02/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tamarl02/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tamarl02/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tamarl02/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tamarl02/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tamarl02/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tamarl02/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tamarl02/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tamarl02/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tamarl02/nand2tetris/deployments", + "created_at": "2014-03-27T11:03:44Z", + "updated_at": "2014-03-29T17:29:13Z", + "pushed_at": "2014-03-29T17:29:13Z", + "git_url": "git://github.com/tamarl02/nand2tetris.git", + "ssh_url": "git@github.com:tamarl02/nand2tetris.git", + "clone_url": "https://github.com/tamarl02/nand2tetris.git", + "svn_url": "https://github.com/tamarl02/nand2tetris", + "homepage": null, + "size": 488, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 18129819, + "name": "nand2tetris", + "full_name": "stug/nand2tetris", + "owner": { + "login": "stug", + "id": 3210321, + "avatar_url": "https://avatars.githubusercontent.com/u/3210321?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/stug", + "html_url": "https://github.com/stug", + "followers_url": "https://api.github.com/users/stug/followers", + "following_url": "https://api.github.com/users/stug/following{/other_user}", + "gists_url": "https://api.github.com/users/stug/gists{/gist_id}", + "starred_url": "https://api.github.com/users/stug/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/stug/subscriptions", + "organizations_url": "https://api.github.com/users/stug/orgs", + "repos_url": "https://api.github.com/users/stug/repos", + "events_url": "https://api.github.com/users/stug/events{/privacy}", + "received_events_url": "https://api.github.com/users/stug/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/stug/nand2tetris", + "description": "Filling in some gaps in my knowledge", + "fork": false, + "url": "https://api.github.com/repos/stug/nand2tetris", + "forks_url": "https://api.github.com/repos/stug/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/stug/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/stug/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/stug/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/stug/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/stug/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/stug/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/stug/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/stug/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/stug/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/stug/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/stug/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/stug/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/stug/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/stug/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/stug/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/stug/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/stug/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/stug/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/stug/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/stug/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/stug/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/stug/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/stug/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/stug/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/stug/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/stug/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/stug/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/stug/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/stug/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/stug/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/stug/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/stug/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/stug/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/stug/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/stug/nand2tetris/deployments", + "created_at": "2014-03-26T07:17:20Z", + "updated_at": "2014-03-30T08:25:14Z", + "pushed_at": "2014-03-30T08:25:13Z", + "git_url": "git://github.com/stug/nand2tetris.git", + "ssh_url": "git@github.com:stug/nand2tetris.git", + "clone_url": "https://github.com/stug/nand2tetris.git", + "svn_url": "https://github.com/stug/nand2tetris", + "homepage": null, + "size": 764, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 18619402, + "name": "nand2tetris", + "full_name": "mattrubin/nand2tetris", + "owner": { + "login": "mattrubin", + "id": 532638, + "avatar_url": "https://avatars.githubusercontent.com/u/532638?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mattrubin", + "html_url": "https://github.com/mattrubin", + "followers_url": "https://api.github.com/users/mattrubin/followers", + "following_url": "https://api.github.com/users/mattrubin/following{/other_user}", + "gists_url": "https://api.github.com/users/mattrubin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mattrubin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mattrubin/subscriptions", + "organizations_url": "https://api.github.com/users/mattrubin/orgs", + "repos_url": "https://api.github.com/users/mattrubin/repos", + "events_url": "https://api.github.com/users/mattrubin/events{/privacy}", + "received_events_url": "https://api.github.com/users/mattrubin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mattrubin/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/mattrubin/nand2tetris", + "forks_url": "https://api.github.com/repos/mattrubin/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mattrubin/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mattrubin/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mattrubin/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mattrubin/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mattrubin/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mattrubin/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mattrubin/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mattrubin/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mattrubin/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mattrubin/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mattrubin/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mattrubin/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mattrubin/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mattrubin/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mattrubin/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mattrubin/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mattrubin/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mattrubin/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mattrubin/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mattrubin/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mattrubin/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mattrubin/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mattrubin/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mattrubin/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mattrubin/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mattrubin/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mattrubin/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mattrubin/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mattrubin/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mattrubin/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mattrubin/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mattrubin/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mattrubin/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mattrubin/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mattrubin/nand2tetris/deployments", + "created_at": "2014-04-10T01:20:19Z", + "updated_at": "2014-04-10T03:14:04Z", + "pushed_at": "2014-04-10T03:14:06Z", + "git_url": "git://github.com/mattrubin/nand2tetris.git", + "ssh_url": "git@github.com:mattrubin/nand2tetris.git", + "clone_url": "https://github.com/mattrubin/nand2tetris.git", + "svn_url": "https://github.com/mattrubin/nand2tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 22691061, + "name": "nand2tetris", + "full_name": "danielvaughan/nand2tetris", + "owner": { + "login": "danielvaughan", + "id": 532160, + "avatar_url": "https://avatars.githubusercontent.com/u/532160?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/danielvaughan", + "html_url": "https://github.com/danielvaughan", + "followers_url": "https://api.github.com/users/danielvaughan/followers", + "following_url": "https://api.github.com/users/danielvaughan/following{/other_user}", + "gists_url": "https://api.github.com/users/danielvaughan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danielvaughan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danielvaughan/subscriptions", + "organizations_url": "https://api.github.com/users/danielvaughan/orgs", + "repos_url": "https://api.github.com/users/danielvaughan/repos", + "events_url": "https://api.github.com/users/danielvaughan/events{/privacy}", + "received_events_url": "https://api.github.com/users/danielvaughan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/danielvaughan/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/danielvaughan/nand2tetris", + "forks_url": "https://api.github.com/repos/danielvaughan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/danielvaughan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/danielvaughan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/danielvaughan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/danielvaughan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/danielvaughan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/danielvaughan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/danielvaughan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/danielvaughan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/danielvaughan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/danielvaughan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/danielvaughan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/danielvaughan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/danielvaughan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/danielvaughan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/danielvaughan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/danielvaughan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/danielvaughan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/danielvaughan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/danielvaughan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/danielvaughan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/danielvaughan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/danielvaughan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/danielvaughan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/danielvaughan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/danielvaughan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/danielvaughan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/danielvaughan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/danielvaughan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/danielvaughan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/danielvaughan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/danielvaughan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/danielvaughan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/danielvaughan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/danielvaughan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/danielvaughan/nand2tetris/deployments", + "created_at": "2014-08-06T17:07:37Z", + "updated_at": "2014-08-06T17:13:33Z", + "pushed_at": "2014-08-06T17:13:33Z", + "git_url": "git://github.com/danielvaughan/nand2tetris.git", + "ssh_url": "git@github.com:danielvaughan/nand2tetris.git", + "clone_url": "https://github.com/danielvaughan/nand2tetris.git", + "svn_url": "https://github.com/danielvaughan/nand2tetris", + "homepage": null, + "size": 268, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 28343991, + "name": "nand2tetris", + "full_name": "computationclub/nand2tetris", + "owner": { + "login": "computationclub", + "id": 9025889, + "avatar_url": "https://avatars.githubusercontent.com/u/9025889?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/computationclub", + "html_url": "https://github.com/computationclub", + "followers_url": "https://api.github.com/users/computationclub/followers", + "following_url": "https://api.github.com/users/computationclub/following{/other_user}", + "gists_url": "https://api.github.com/users/computationclub/gists{/gist_id}", + "starred_url": "https://api.github.com/users/computationclub/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/computationclub/subscriptions", + "organizations_url": "https://api.github.com/users/computationclub/orgs", + "repos_url": "https://api.github.com/users/computationclub/repos", + "events_url": "https://api.github.com/users/computationclub/events{/privacy}", + "received_events_url": "https://api.github.com/users/computationclub/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/computationclub/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/computationclub/nand2tetris", + "forks_url": "https://api.github.com/repos/computationclub/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/computationclub/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/computationclub/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/computationclub/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/computationclub/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/computationclub/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/computationclub/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/computationclub/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/computationclub/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/computationclub/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/computationclub/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/computationclub/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/computationclub/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/computationclub/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/computationclub/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/computationclub/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/computationclub/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/computationclub/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/computationclub/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/computationclub/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/computationclub/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/computationclub/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/computationclub/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/computationclub/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/computationclub/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/computationclub/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/computationclub/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/computationclub/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/computationclub/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/computationclub/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/computationclub/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/computationclub/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/computationclub/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/computationclub/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/computationclub/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/computationclub/nand2tetris/deployments", + "created_at": "2014-12-22T15:23:33Z", + "updated_at": "2015-02-10T20:40:40Z", + "pushed_at": "2015-02-16T13:38:55Z", + "git_url": "git://github.com/computationclub/nand2tetris.git", + "ssh_url": "git@github.com:computationclub/nand2tetris.git", + "clone_url": "https://github.com/computationclub/nand2tetris.git", + "svn_url": "https://github.com/computationclub/nand2tetris", + "homepage": null, + "size": 952, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 1, + "forks": 1, + "open_issues": 1, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 26049118, + "name": "nand2tetris", + "full_name": "jgwhite/nand2tetris", + "owner": { + "login": "jgwhite", + "id": 34030, + "avatar_url": "https://avatars.githubusercontent.com/u/34030?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jgwhite", + "html_url": "https://github.com/jgwhite", + "followers_url": "https://api.github.com/users/jgwhite/followers", + "following_url": "https://api.github.com/users/jgwhite/following{/other_user}", + "gists_url": "https://api.github.com/users/jgwhite/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jgwhite/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jgwhite/subscriptions", + "organizations_url": "https://api.github.com/users/jgwhite/orgs", + "repos_url": "https://api.github.com/users/jgwhite/repos", + "events_url": "https://api.github.com/users/jgwhite/events{/privacy}", + "received_events_url": "https://api.github.com/users/jgwhite/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jgwhite/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/jgwhite/nand2tetris", + "forks_url": "https://api.github.com/repos/jgwhite/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jgwhite/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jgwhite/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jgwhite/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jgwhite/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jgwhite/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jgwhite/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jgwhite/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jgwhite/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jgwhite/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jgwhite/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jgwhite/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jgwhite/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jgwhite/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jgwhite/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jgwhite/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jgwhite/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jgwhite/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jgwhite/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jgwhite/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jgwhite/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jgwhite/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jgwhite/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jgwhite/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jgwhite/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jgwhite/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jgwhite/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jgwhite/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jgwhite/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jgwhite/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jgwhite/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jgwhite/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jgwhite/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jgwhite/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jgwhite/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jgwhite/nand2tetris/deployments", + "created_at": "2014-11-01T11:40:41Z", + "updated_at": "2014-11-25T20:38:07Z", + "pushed_at": "2014-11-25T20:38:07Z", + "git_url": "git://github.com/jgwhite/nand2tetris.git", + "ssh_url": "git@github.com:jgwhite/nand2tetris.git", + "clone_url": "https://github.com/jgwhite/nand2tetris.git", + "svn_url": "https://github.com/jgwhite/nand2tetris", + "homepage": null, + "size": 704, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 27302041, + "name": "nand2tetris", + "full_name": "nvurgaft/nand2tetris", + "owner": { + "login": "nvurgaft", + "id": 1694752, + "avatar_url": "https://avatars.githubusercontent.com/u/1694752?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nvurgaft", + "html_url": "https://github.com/nvurgaft", + "followers_url": "https://api.github.com/users/nvurgaft/followers", + "following_url": "https://api.github.com/users/nvurgaft/following{/other_user}", + "gists_url": "https://api.github.com/users/nvurgaft/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nvurgaft/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nvurgaft/subscriptions", + "organizations_url": "https://api.github.com/users/nvurgaft/orgs", + "repos_url": "https://api.github.com/users/nvurgaft/repos", + "events_url": "https://api.github.com/users/nvurgaft/events{/privacy}", + "received_events_url": "https://api.github.com/users/nvurgaft/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nvurgaft/nand2tetris", + "description": "nand2tetris code snippets and answers", + "fork": false, + "url": "https://api.github.com/repos/nvurgaft/nand2tetris", + "forks_url": "https://api.github.com/repos/nvurgaft/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/nvurgaft/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nvurgaft/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nvurgaft/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/nvurgaft/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/nvurgaft/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/nvurgaft/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/nvurgaft/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/nvurgaft/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/nvurgaft/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/nvurgaft/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nvurgaft/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nvurgaft/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nvurgaft/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nvurgaft/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nvurgaft/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/nvurgaft/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/nvurgaft/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/nvurgaft/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/nvurgaft/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/nvurgaft/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nvurgaft/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nvurgaft/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nvurgaft/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nvurgaft/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/nvurgaft/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nvurgaft/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/nvurgaft/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nvurgaft/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/nvurgaft/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/nvurgaft/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nvurgaft/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nvurgaft/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nvurgaft/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/nvurgaft/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/nvurgaft/nand2tetris/deployments", + "created_at": "2014-11-29T12:54:06Z", + "updated_at": "2014-12-01T21:52:45Z", + "pushed_at": "2014-12-01T21:52:44Z", + "git_url": "git://github.com/nvurgaft/nand2tetris.git", + "ssh_url": "git@github.com:nvurgaft/nand2tetris.git", + "clone_url": "https://github.com/nvurgaft/nand2tetris.git", + "svn_url": "https://github.com/nvurgaft/nand2tetris", + "homepage": null, + "size": 160, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + }, + { + "id": 24871386, + "name": "nand2tetris", + "full_name": "gtw/nand2tetris", + "owner": { + "login": "gtw", + "id": 3296766, + "avatar_url": "https://avatars.githubusercontent.com/u/3296766?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gtw", + "html_url": "https://github.com/gtw", + "followers_url": "https://api.github.com/users/gtw/followers", + "following_url": "https://api.github.com/users/gtw/following{/other_user}", + "gists_url": "https://api.github.com/users/gtw/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gtw/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gtw/subscriptions", + "organizations_url": "https://api.github.com/users/gtw/orgs", + "repos_url": "https://api.github.com/users/gtw/repos", + "events_url": "https://api.github.com/users/gtw/events{/privacy}", + "received_events_url": "https://api.github.com/users/gtw/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gtw/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/gtw/nand2tetris", + "forks_url": "https://api.github.com/repos/gtw/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/gtw/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gtw/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gtw/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/gtw/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/gtw/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gtw/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/gtw/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gtw/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gtw/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/gtw/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gtw/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gtw/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gtw/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gtw/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gtw/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/gtw/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/gtw/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/gtw/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/gtw/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/gtw/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gtw/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gtw/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gtw/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gtw/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gtw/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gtw/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/gtw/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gtw/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/gtw/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gtw/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gtw/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gtw/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gtw/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gtw/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gtw/nand2tetris/deployments", + "created_at": "2014-10-07T00:44:07Z", + "updated_at": "2014-10-07T00:51:22Z", + "pushed_at": "2014-10-07T11:29:41Z", + "git_url": "git://github.com/gtw/nand2tetris.git", + "ssh_url": "git@github.com:gtw/nand2tetris.git", + "clone_url": "https://github.com/gtw/nand2tetris.git", + "svn_url": "https://github.com/gtw/nand2tetris", + "homepage": null, + "size": 652, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2256632 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:17 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "479713", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "27", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"next\", ; rel=\"last\", ; rel=\"first\", ; rel=\"prev\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "474556b853193c38f1b14328ce2d1b7d", + "x-github-request-id": "AE1408AB:F651:91B9A01:5769F4B4" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/repositories?q=tetris+language%3Aassembly&sort=stars&order=desc&type=all&per_page=100&page=4&q=tetris+language:assembly&sort=stars&order=desc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 473, + "incomplete_results": false, + "items": [ + { + "id": 16805911, + "name": "nand2tetris", + "full_name": "stuartsan/nand2tetris", + "owner": { + "login": "stuartsan", + "id": 1724544, + "avatar_url": "https://avatars.githubusercontent.com/u/1724544?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/stuartsan", + "html_url": "https://github.com/stuartsan", + "followers_url": "https://api.github.com/users/stuartsan/followers", + "following_url": "https://api.github.com/users/stuartsan/following{/other_user}", + "gists_url": "https://api.github.com/users/stuartsan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/stuartsan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/stuartsan/subscriptions", + "organizations_url": "https://api.github.com/users/stuartsan/orgs", + "repos_url": "https://api.github.com/users/stuartsan/repos", + "events_url": "https://api.github.com/users/stuartsan/events{/privacy}", + "received_events_url": "https://api.github.com/users/stuartsan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/stuartsan/nand2tetris", + "description": "The Elements of Computing Systems course from nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/stuartsan/nand2tetris", + "forks_url": "https://api.github.com/repos/stuartsan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/stuartsan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/stuartsan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/stuartsan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/stuartsan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/stuartsan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/stuartsan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/stuartsan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/stuartsan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/stuartsan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/stuartsan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/stuartsan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/stuartsan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/stuartsan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/stuartsan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/stuartsan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/stuartsan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/stuartsan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/stuartsan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/stuartsan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/stuartsan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/stuartsan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/stuartsan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/stuartsan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/stuartsan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/stuartsan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/stuartsan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/stuartsan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/stuartsan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/stuartsan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/stuartsan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/stuartsan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/stuartsan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/stuartsan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/stuartsan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/stuartsan/nand2tetris/deployments", + "created_at": "2014-02-13T14:49:27Z", + "updated_at": "2014-04-11T00:22:54Z", + "pushed_at": "2014-04-11T00:22:55Z", + "git_url": "git://github.com/stuartsan/nand2tetris.git", + "ssh_url": "git@github.com:stuartsan/nand2tetris.git", + "clone_url": "https://github.com/stuartsan/nand2tetris.git", + "svn_url": "https://github.com/stuartsan/nand2tetris", + "homepage": null, + "size": 804, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 26594067, + "name": "nand2tetris", + "full_name": "JoyP/nand2tetris", + "owner": { + "login": "JoyP", + "id": 5505164, + "avatar_url": "https://avatars.githubusercontent.com/u/5505164?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/JoyP", + "html_url": "https://github.com/JoyP", + "followers_url": "https://api.github.com/users/JoyP/followers", + "following_url": "https://api.github.com/users/JoyP/following{/other_user}", + "gists_url": "https://api.github.com/users/JoyP/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JoyP/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JoyP/subscriptions", + "organizations_url": "https://api.github.com/users/JoyP/orgs", + "repos_url": "https://api.github.com/users/JoyP/repos", + "events_url": "https://api.github.com/users/JoyP/events{/privacy}", + "received_events_url": "https://api.github.com/users/JoyP/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/JoyP/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/JoyP/nand2tetris", + "forks_url": "https://api.github.com/repos/JoyP/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/JoyP/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/JoyP/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/JoyP/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/JoyP/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/JoyP/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/JoyP/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/JoyP/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/JoyP/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/JoyP/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/JoyP/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/JoyP/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/JoyP/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/JoyP/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/JoyP/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/JoyP/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/JoyP/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/JoyP/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/JoyP/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/JoyP/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/JoyP/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/JoyP/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/JoyP/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/JoyP/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/JoyP/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/JoyP/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/JoyP/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/JoyP/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/JoyP/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/JoyP/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/JoyP/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/JoyP/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/JoyP/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/JoyP/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/JoyP/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/JoyP/nand2tetris/deployments", + "created_at": "2014-11-13T15:27:37Z", + "updated_at": "2014-11-13T15:29:00Z", + "pushed_at": "2014-11-13T15:29:00Z", + "git_url": "git://github.com/JoyP/nand2tetris.git", + "ssh_url": "git@github.com:JoyP/nand2tetris.git", + "clone_url": "https://github.com/JoyP/nand2tetris.git", + "svn_url": "https://github.com/JoyP/nand2tetris", + "homepage": null, + "size": 616, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 26594230, + "name": "nand2tetris", + "full_name": "shrutijalewar/nand2tetris", + "owner": { + "login": "shrutijalewar", + "id": 7443067, + "avatar_url": "https://avatars.githubusercontent.com/u/7443067?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/shrutijalewar", + "html_url": "https://github.com/shrutijalewar", + "followers_url": "https://api.github.com/users/shrutijalewar/followers", + "following_url": "https://api.github.com/users/shrutijalewar/following{/other_user}", + "gists_url": "https://api.github.com/users/shrutijalewar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shrutijalewar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shrutijalewar/subscriptions", + "organizations_url": "https://api.github.com/users/shrutijalewar/orgs", + "repos_url": "https://api.github.com/users/shrutijalewar/repos", + "events_url": "https://api.github.com/users/shrutijalewar/events{/privacy}", + "received_events_url": "https://api.github.com/users/shrutijalewar/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/shrutijalewar/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/shrutijalewar/nand2tetris", + "forks_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/shrutijalewar/nand2tetris/deployments", + "created_at": "2014-11-13T15:30:58Z", + "updated_at": "2014-11-13T15:32:03Z", + "pushed_at": "2014-11-13T15:32:03Z", + "git_url": "git://github.com/shrutijalewar/nand2tetris.git", + "ssh_url": "git@github.com:shrutijalewar/nand2tetris.git", + "clone_url": "https://github.com/shrutijalewar/nand2tetris.git", + "svn_url": "https://github.com/shrutijalewar/nand2tetris", + "homepage": null, + "size": 616, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 26547434, + "name": "nand2tetris", + "full_name": "jjsub/nand2tetris", + "owner": { + "login": "jjsub", + "id": 7912104, + "avatar_url": "https://avatars.githubusercontent.com/u/7912104?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jjsub", + "html_url": "https://github.com/jjsub", + "followers_url": "https://api.github.com/users/jjsub/followers", + "following_url": "https://api.github.com/users/jjsub/following{/other_user}", + "gists_url": "https://api.github.com/users/jjsub/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jjsub/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jjsub/subscriptions", + "organizations_url": "https://api.github.com/users/jjsub/orgs", + "repos_url": "https://api.github.com/users/jjsub/repos", + "events_url": "https://api.github.com/users/jjsub/events{/privacy}", + "received_events_url": "https://api.github.com/users/jjsub/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jjsub/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jjsub/nand2tetris", + "forks_url": "https://api.github.com/repos/jjsub/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jjsub/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jjsub/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jjsub/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jjsub/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jjsub/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jjsub/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jjsub/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jjsub/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jjsub/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jjsub/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jjsub/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jjsub/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jjsub/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jjsub/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jjsub/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jjsub/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jjsub/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jjsub/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jjsub/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jjsub/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jjsub/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jjsub/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jjsub/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jjsub/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jjsub/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jjsub/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jjsub/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jjsub/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jjsub/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jjsub/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jjsub/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jjsub/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jjsub/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jjsub/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jjsub/nand2tetris/deployments", + "created_at": "2014-11-12T17:27:14Z", + "updated_at": "2014-11-12T17:28:01Z", + "pushed_at": "2014-11-12T17:28:35Z", + "git_url": "git://github.com/jjsub/nand2tetris.git", + "ssh_url": "git@github.com:jjsub/nand2tetris.git", + "clone_url": "https://github.com/jjsub/nand2tetris.git", + "svn_url": "https://github.com/jjsub/nand2tetris", + "homepage": null, + "size": 640, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 30328803, + "name": "nand2tetris", + "full_name": "bpollack/nand2tetris", + "owner": { + "login": "bpollack", + "id": 14799, + "avatar_url": "https://avatars.githubusercontent.com/u/14799?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bpollack", + "html_url": "https://github.com/bpollack", + "followers_url": "https://api.github.com/users/bpollack/followers", + "following_url": "https://api.github.com/users/bpollack/following{/other_user}", + "gists_url": "https://api.github.com/users/bpollack/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bpollack/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bpollack/subscriptions", + "organizations_url": "https://api.github.com/users/bpollack/orgs", + "repos_url": "https://api.github.com/users/bpollack/repos", + "events_url": "https://api.github.com/users/bpollack/events{/privacy}", + "received_events_url": "https://api.github.com/users/bpollack/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bpollack/nand2tetris", + "description": "My efforts to work through the Elements of Computing", + "fork": false, + "url": "https://api.github.com/repos/bpollack/nand2tetris", + "forks_url": "https://api.github.com/repos/bpollack/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bpollack/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bpollack/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bpollack/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bpollack/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bpollack/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bpollack/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bpollack/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bpollack/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bpollack/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bpollack/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bpollack/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bpollack/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bpollack/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bpollack/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bpollack/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bpollack/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bpollack/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bpollack/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bpollack/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bpollack/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bpollack/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bpollack/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bpollack/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bpollack/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bpollack/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bpollack/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bpollack/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bpollack/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bpollack/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bpollack/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bpollack/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bpollack/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bpollack/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bpollack/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bpollack/nand2tetris/deployments", + "created_at": "2015-02-05T00:19:20Z", + "updated_at": "2015-02-05T00:22:44Z", + "pushed_at": "2015-02-05T00:22:07Z", + "git_url": "git://github.com/bpollack/nand2tetris.git", + "ssh_url": "git@github.com:bpollack/nand2tetris.git", + "clone_url": "https://github.com/bpollack/nand2tetris.git", + "svn_url": "https://github.com/bpollack/nand2tetris", + "homepage": "", + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 30840497, + "name": "nand2tetris", + "full_name": "wspurgin/nand2tetris", + "owner": { + "login": "wspurgin", + "id": 3472781, + "avatar_url": "https://avatars.githubusercontent.com/u/3472781?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/wspurgin", + "html_url": "https://github.com/wspurgin", + "followers_url": "https://api.github.com/users/wspurgin/followers", + "following_url": "https://api.github.com/users/wspurgin/following{/other_user}", + "gists_url": "https://api.github.com/users/wspurgin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/wspurgin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wspurgin/subscriptions", + "organizations_url": "https://api.github.com/users/wspurgin/orgs", + "repos_url": "https://api.github.com/users/wspurgin/repos", + "events_url": "https://api.github.com/users/wspurgin/events{/privacy}", + "received_events_url": "https://api.github.com/users/wspurgin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/wspurgin/nand2tetris", + "description": "Code and examples from the popular Nand2Tetris course.", + "fork": false, + "url": "https://api.github.com/repos/wspurgin/nand2tetris", + "forks_url": "https://api.github.com/repos/wspurgin/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/wspurgin/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/wspurgin/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/wspurgin/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/wspurgin/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/wspurgin/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/wspurgin/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/wspurgin/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/wspurgin/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/wspurgin/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/wspurgin/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/wspurgin/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/wspurgin/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/wspurgin/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/wspurgin/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/wspurgin/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/wspurgin/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/wspurgin/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/wspurgin/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/wspurgin/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/wspurgin/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/wspurgin/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/wspurgin/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/wspurgin/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/wspurgin/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/wspurgin/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/wspurgin/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/wspurgin/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/wspurgin/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/wspurgin/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/wspurgin/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/wspurgin/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/wspurgin/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/wspurgin/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/wspurgin/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/wspurgin/nand2tetris/deployments", + "created_at": "2015-02-15T20:17:09Z", + "updated_at": "2015-02-15T20:20:21Z", + "pushed_at": "2015-02-15T20:20:20Z", + "git_url": "git://github.com/wspurgin/nand2tetris.git", + "ssh_url": "git@github.com:wspurgin/nand2tetris.git", + "clone_url": "https://github.com/wspurgin/nand2tetris.git", + "svn_url": "https://github.com/wspurgin/nand2tetris", + "homepage": null, + "size": 672, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 30083405, + "name": "nand2tetris", + "full_name": "lcapkovic/nand2tetris", + "owner": { + "login": "lcapkovic", + "id": 3610850, + "avatar_url": "https://avatars.githubusercontent.com/u/3610850?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lcapkovic", + "html_url": "https://github.com/lcapkovic", + "followers_url": "https://api.github.com/users/lcapkovic/followers", + "following_url": "https://api.github.com/users/lcapkovic/following{/other_user}", + "gists_url": "https://api.github.com/users/lcapkovic/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lcapkovic/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lcapkovic/subscriptions", + "organizations_url": "https://api.github.com/users/lcapkovic/orgs", + "repos_url": "https://api.github.com/users/lcapkovic/repos", + "events_url": "https://api.github.com/users/lcapkovic/events{/privacy}", + "received_events_url": "https://api.github.com/users/lcapkovic/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lcapkovic/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/lcapkovic/nand2tetris", + "forks_url": "https://api.github.com/repos/lcapkovic/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lcapkovic/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lcapkovic/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lcapkovic/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lcapkovic/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lcapkovic/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lcapkovic/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lcapkovic/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lcapkovic/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lcapkovic/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lcapkovic/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lcapkovic/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lcapkovic/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lcapkovic/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lcapkovic/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lcapkovic/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lcapkovic/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lcapkovic/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lcapkovic/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lcapkovic/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lcapkovic/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lcapkovic/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lcapkovic/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lcapkovic/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lcapkovic/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lcapkovic/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lcapkovic/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lcapkovic/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lcapkovic/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lcapkovic/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lcapkovic/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lcapkovic/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lcapkovic/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lcapkovic/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lcapkovic/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lcapkovic/nand2tetris/deployments", + "created_at": "2015-01-30T17:39:25Z", + "updated_at": "2015-02-10T01:04:54Z", + "pushed_at": "2015-02-10T01:04:54Z", + "git_url": "git://github.com/lcapkovic/nand2tetris.git", + "ssh_url": "git@github.com:lcapkovic/nand2tetris.git", + "clone_url": "https://github.com/lcapkovic/nand2tetris.git", + "svn_url": "https://github.com/lcapkovic/nand2tetris", + "homepage": null, + "size": 164, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 42319493, + "name": "NAND2TETRIS", + "full_name": "dheerajgopi/NAND2TETRIS", + "owner": { + "login": "dheerajgopi", + "id": 10149950, + "avatar_url": "https://avatars.githubusercontent.com/u/10149950?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dheerajgopi", + "html_url": "https://github.com/dheerajgopi", + "followers_url": "https://api.github.com/users/dheerajgopi/followers", + "following_url": "https://api.github.com/users/dheerajgopi/following{/other_user}", + "gists_url": "https://api.github.com/users/dheerajgopi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dheerajgopi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dheerajgopi/subscriptions", + "organizations_url": "https://api.github.com/users/dheerajgopi/orgs", + "repos_url": "https://api.github.com/users/dheerajgopi/repos", + "events_url": "https://api.github.com/users/dheerajgopi/events{/privacy}", + "received_events_url": "https://api.github.com/users/dheerajgopi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dheerajgopi/NAND2TETRIS", + "description": "HDL Codes for Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS", + "forks_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/forks", + "keys_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/teams", + "hooks_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/hooks", + "issue_events_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/issues/events{/number}", + "events_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/events", + "assignees_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/assignees{/user}", + "branches_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/branches{/branch}", + "tags_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/tags", + "blobs_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/languages", + "stargazers_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/stargazers", + "contributors_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/contributors", + "subscribers_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/subscribers", + "subscription_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/subscription", + "commits_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/contents/{+path}", + "compare_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/merges", + "archive_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/downloads", + "issues_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/issues{/number}", + "pulls_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/labels{/name}", + "releases_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/releases{/id}", + "deployments_url": "https://api.github.com/repos/dheerajgopi/NAND2TETRIS/deployments", + "created_at": "2015-09-11T16:22:16Z", + "updated_at": "2015-09-11T16:23:21Z", + "pushed_at": "2015-09-11T16:23:21Z", + "git_url": "git://github.com/dheerajgopi/NAND2TETRIS.git", + "ssh_url": "git@github.com:dheerajgopi/NAND2TETRIS.git", + "clone_url": "https://github.com/dheerajgopi/NAND2TETRIS.git", + "svn_url": "https://github.com/dheerajgopi/NAND2TETRIS", + "homepage": null, + "size": 212, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 42456730, + "name": "nand2tetris", + "full_name": "jdangerx/nand2tetris", + "owner": { + "login": "jdangerx", + "id": 2495794, + "avatar_url": "https://avatars.githubusercontent.com/u/2495794?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jdangerx", + "html_url": "https://github.com/jdangerx", + "followers_url": "https://api.github.com/users/jdangerx/followers", + "following_url": "https://api.github.com/users/jdangerx/following{/other_user}", + "gists_url": "https://api.github.com/users/jdangerx/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdangerx/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdangerx/subscriptions", + "organizations_url": "https://api.github.com/users/jdangerx/orgs", + "repos_url": "https://api.github.com/users/jdangerx/repos", + "events_url": "https://api.github.com/users/jdangerx/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdangerx/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jdangerx/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/jdangerx/nand2tetris", + "forks_url": "https://api.github.com/repos/jdangerx/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jdangerx/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jdangerx/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jdangerx/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jdangerx/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jdangerx/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jdangerx/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jdangerx/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jdangerx/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jdangerx/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jdangerx/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jdangerx/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jdangerx/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jdangerx/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jdangerx/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jdangerx/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jdangerx/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jdangerx/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jdangerx/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jdangerx/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jdangerx/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jdangerx/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jdangerx/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jdangerx/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jdangerx/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jdangerx/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jdangerx/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jdangerx/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jdangerx/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jdangerx/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jdangerx/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jdangerx/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jdangerx/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jdangerx/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jdangerx/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jdangerx/nand2tetris/deployments", + "created_at": "2015-09-14T15:17:37Z", + "updated_at": "2015-09-14T15:18:11Z", + "pushed_at": "2015-10-01T00:09:16Z", + "git_url": "git://github.com/jdangerx/nand2tetris.git", + "ssh_url": "git@github.com:jdangerx/nand2tetris.git", + "clone_url": "https://github.com/jdangerx/nand2tetris.git", + "svn_url": "https://github.com/jdangerx/nand2tetris", + "homepage": null, + "size": 412, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 32441485, + "name": "nand2tetris", + "full_name": "kobylin/nand2tetris", + "owner": { + "login": "kobylin", + "id": 1272300, + "avatar_url": "https://avatars.githubusercontent.com/u/1272300?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kobylin", + "html_url": "https://github.com/kobylin", + "followers_url": "https://api.github.com/users/kobylin/followers", + "following_url": "https://api.github.com/users/kobylin/following{/other_user}", + "gists_url": "https://api.github.com/users/kobylin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kobylin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kobylin/subscriptions", + "organizations_url": "https://api.github.com/users/kobylin/orgs", + "repos_url": "https://api.github.com/users/kobylin/repos", + "events_url": "https://api.github.com/users/kobylin/events{/privacy}", + "received_events_url": "https://api.github.com/users/kobylin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kobylin/nand2tetris", + "description": "Implementation of projects from this course http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/kobylin/nand2tetris", + "forks_url": "https://api.github.com/repos/kobylin/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kobylin/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kobylin/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kobylin/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kobylin/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kobylin/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kobylin/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kobylin/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kobylin/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kobylin/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kobylin/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kobylin/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kobylin/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kobylin/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kobylin/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kobylin/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kobylin/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kobylin/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kobylin/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kobylin/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kobylin/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kobylin/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kobylin/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kobylin/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kobylin/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kobylin/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kobylin/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kobylin/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kobylin/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kobylin/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kobylin/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kobylin/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kobylin/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kobylin/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kobylin/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kobylin/nand2tetris/deployments", + "created_at": "2015-03-18T06:18:05Z", + "updated_at": "2015-03-18T06:36:51Z", + "pushed_at": "2015-03-18T06:36:50Z", + "git_url": "git://github.com/kobylin/nand2tetris.git", + "ssh_url": "git@github.com:kobylin/nand2tetris.git", + "clone_url": "https://github.com/kobylin/nand2tetris.git", + "svn_url": "https://github.com/kobylin/nand2tetris", + "homepage": null, + "size": 300, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 38312141, + "name": "nand2tetris", + "full_name": "tkokamo/nand2tetris", + "owner": { + "login": "tkokamo", + "id": 6091799, + "avatar_url": "https://avatars.githubusercontent.com/u/6091799?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tkokamo", + "html_url": "https://github.com/tkokamo", + "followers_url": "https://api.github.com/users/tkokamo/followers", + "following_url": "https://api.github.com/users/tkokamo/following{/other_user}", + "gists_url": "https://api.github.com/users/tkokamo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tkokamo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tkokamo/subscriptions", + "organizations_url": "https://api.github.com/users/tkokamo/orgs", + "repos_url": "https://api.github.com/users/tkokamo/repos", + "events_url": "https://api.github.com/users/tkokamo/events{/privacy}", + "received_events_url": "https://api.github.com/users/tkokamo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tkokamo/nand2tetris", + "description": "implement nand2tetris ", + "fork": false, + "url": "https://api.github.com/repos/tkokamo/nand2tetris", + "forks_url": "https://api.github.com/repos/tkokamo/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tkokamo/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tkokamo/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tkokamo/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tkokamo/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tkokamo/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tkokamo/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tkokamo/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tkokamo/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tkokamo/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tkokamo/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tkokamo/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tkokamo/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tkokamo/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tkokamo/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tkokamo/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tkokamo/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tkokamo/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tkokamo/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tkokamo/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tkokamo/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tkokamo/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tkokamo/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tkokamo/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tkokamo/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tkokamo/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tkokamo/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tkokamo/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tkokamo/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tkokamo/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tkokamo/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tkokamo/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tkokamo/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tkokamo/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tkokamo/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tkokamo/nand2tetris/deployments", + "created_at": "2015-06-30T13:55:09Z", + "updated_at": "2015-07-08T18:00:26Z", + "pushed_at": "2015-07-08T17:50:15Z", + "git_url": "git://github.com/tkokamo/nand2tetris.git", + "ssh_url": "git@github.com:tkokamo/nand2tetris.git", + "clone_url": "https://github.com/tkokamo/nand2tetris.git", + "svn_url": "https://github.com/tkokamo/nand2tetris", + "homepage": "", + "size": 304, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 38347774, + "name": "nand2tetris", + "full_name": "candrews800/nand2tetris", + "owner": { + "login": "candrews800", + "id": 5778644, + "avatar_url": "https://avatars.githubusercontent.com/u/5778644?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/candrews800", + "html_url": "https://github.com/candrews800", + "followers_url": "https://api.github.com/users/candrews800/followers", + "following_url": "https://api.github.com/users/candrews800/following{/other_user}", + "gists_url": "https://api.github.com/users/candrews800/gists{/gist_id}", + "starred_url": "https://api.github.com/users/candrews800/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/candrews800/subscriptions", + "organizations_url": "https://api.github.com/users/candrews800/orgs", + "repos_url": "https://api.github.com/users/candrews800/repos", + "events_url": "https://api.github.com/users/candrews800/events{/privacy}", + "received_events_url": "https://api.github.com/users/candrews800/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/candrews800/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/candrews800/nand2tetris", + "forks_url": "https://api.github.com/repos/candrews800/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/candrews800/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/candrews800/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/candrews800/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/candrews800/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/candrews800/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/candrews800/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/candrews800/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/candrews800/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/candrews800/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/candrews800/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/candrews800/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/candrews800/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/candrews800/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/candrews800/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/candrews800/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/candrews800/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/candrews800/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/candrews800/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/candrews800/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/candrews800/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/candrews800/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/candrews800/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/candrews800/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/candrews800/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/candrews800/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/candrews800/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/candrews800/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/candrews800/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/candrews800/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/candrews800/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/candrews800/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/candrews800/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/candrews800/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/candrews800/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/candrews800/nand2tetris/deployments", + "created_at": "2015-07-01T03:34:58Z", + "updated_at": "2015-07-03T05:00:04Z", + "pushed_at": "2015-07-03T05:00:03Z", + "git_url": "git://github.com/candrews800/nand2tetris.git", + "ssh_url": "git@github.com:candrews800/nand2tetris.git", + "clone_url": "https://github.com/candrews800/nand2tetris.git", + "svn_url": "https://github.com/candrews800/nand2tetris", + "homepage": null, + "size": 624, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 42001206, + "name": "nand2tetris", + "full_name": "dinnu93/nand2tetris", + "owner": { + "login": "dinnu93", + "id": 3586932, + "avatar_url": "https://avatars.githubusercontent.com/u/3586932?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dinnu93", + "html_url": "https://github.com/dinnu93", + "followers_url": "https://api.github.com/users/dinnu93/followers", + "following_url": "https://api.github.com/users/dinnu93/following{/other_user}", + "gists_url": "https://api.github.com/users/dinnu93/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dinnu93/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dinnu93/subscriptions", + "organizations_url": "https://api.github.com/users/dinnu93/orgs", + "repos_url": "https://api.github.com/users/dinnu93/repos", + "events_url": "https://api.github.com/users/dinnu93/events{/privacy}", + "received_events_url": "https://api.github.com/users/dinnu93/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dinnu93/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dinnu93/nand2tetris", + "forks_url": "https://api.github.com/repos/dinnu93/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dinnu93/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dinnu93/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dinnu93/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dinnu93/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dinnu93/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dinnu93/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dinnu93/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dinnu93/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dinnu93/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dinnu93/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dinnu93/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dinnu93/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dinnu93/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dinnu93/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dinnu93/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dinnu93/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dinnu93/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dinnu93/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dinnu93/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dinnu93/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dinnu93/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dinnu93/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dinnu93/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dinnu93/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dinnu93/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dinnu93/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dinnu93/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dinnu93/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dinnu93/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dinnu93/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dinnu93/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dinnu93/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dinnu93/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dinnu93/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dinnu93/nand2tetris/deployments", + "created_at": "2015-09-06T12:06:47Z", + "updated_at": "2015-09-06T12:07:21Z", + "pushed_at": "2015-10-01T07:33:02Z", + "git_url": "git://github.com/dinnu93/nand2tetris.git", + "ssh_url": "git@github.com:dinnu93/nand2tetris.git", + "clone_url": "https://github.com/dinnu93/nand2tetris.git", + "svn_url": "https://github.com/dinnu93/nand2tetris", + "homepage": null, + "size": 692, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 41644772, + "name": "nand2tetris", + "full_name": "kevin-mccann/nand2tetris", + "owner": { + "login": "kevin-mccann", + "id": 6790130, + "avatar_url": "https://avatars.githubusercontent.com/u/6790130?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kevin-mccann", + "html_url": "https://github.com/kevin-mccann", + "followers_url": "https://api.github.com/users/kevin-mccann/followers", + "following_url": "https://api.github.com/users/kevin-mccann/following{/other_user}", + "gists_url": "https://api.github.com/users/kevin-mccann/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kevin-mccann/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kevin-mccann/subscriptions", + "organizations_url": "https://api.github.com/users/kevin-mccann/orgs", + "repos_url": "https://api.github.com/users/kevin-mccann/repos", + "events_url": "https://api.github.com/users/kevin-mccann/events{/privacy}", + "received_events_url": "https://api.github.com/users/kevin-mccann/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kevin-mccann/nand2tetris", + "description": "Building a Modern Computer from First Principles", + "fork": false, + "url": "https://api.github.com/repos/kevin-mccann/nand2tetris", + "forks_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kevin-mccann/nand2tetris/deployments", + "created_at": "2015-08-30T22:13:16Z", + "updated_at": "2015-08-30T22:14:45Z", + "pushed_at": "2015-09-02T06:47:49Z", + "git_url": "git://github.com/kevin-mccann/nand2tetris.git", + "ssh_url": "git@github.com:kevin-mccann/nand2tetris.git", + "clone_url": "https://github.com/kevin-mccann/nand2tetris.git", + "svn_url": "https://github.com/kevin-mccann/nand2tetris", + "homepage": null, + "size": 764, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 40097911, + "name": "nand2tetris", + "full_name": "richardartoul/nand2tetris", + "owner": { + "login": "richardartoul", + "id": 9171254, + "avatar_url": "https://avatars.githubusercontent.com/u/9171254?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/richardartoul", + "html_url": "https://github.com/richardartoul", + "followers_url": "https://api.github.com/users/richardartoul/followers", + "following_url": "https://api.github.com/users/richardartoul/following{/other_user}", + "gists_url": "https://api.github.com/users/richardartoul/gists{/gist_id}", + "starred_url": "https://api.github.com/users/richardartoul/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/richardartoul/subscriptions", + "organizations_url": "https://api.github.com/users/richardartoul/orgs", + "repos_url": "https://api.github.com/users/richardartoul/repos", + "events_url": "https://api.github.com/users/richardartoul/events{/privacy}", + "received_events_url": "https://api.github.com/users/richardartoul/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/richardartoul/nand2tetris", + "description": "Creating a general purpose computer system, starting from NAND gates all the way up to an implementation of Tetris", + "fork": false, + "url": "https://api.github.com/repos/richardartoul/nand2tetris", + "forks_url": "https://api.github.com/repos/richardartoul/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/richardartoul/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/richardartoul/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/richardartoul/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/richardartoul/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/richardartoul/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/richardartoul/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/richardartoul/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/richardartoul/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/richardartoul/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/richardartoul/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/richardartoul/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/richardartoul/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/richardartoul/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/richardartoul/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/richardartoul/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/richardartoul/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/richardartoul/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/richardartoul/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/richardartoul/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/richardartoul/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/richardartoul/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/richardartoul/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/richardartoul/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/richardartoul/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/richardartoul/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/richardartoul/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/richardartoul/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/richardartoul/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/richardartoul/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/richardartoul/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/richardartoul/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/richardartoul/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/richardartoul/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/richardartoul/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/richardartoul/nand2tetris/deployments", + "created_at": "2015-08-03T00:48:12Z", + "updated_at": "2015-08-03T00:48:43Z", + "pushed_at": "2015-10-09T21:42:48Z", + "git_url": "git://github.com/richardartoul/nand2tetris.git", + "ssh_url": "git@github.com:richardartoul/nand2tetris.git", + "clone_url": "https://github.com/richardartoul/nand2tetris.git", + "svn_url": "https://github.com/richardartoul/nand2tetris", + "homepage": null, + "size": 816, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34713603, + "name": "nand2tetris", + "full_name": "bon-chi/nand2tetris", + "owner": { + "login": "bon-chi", + "id": 5237032, + "avatar_url": "https://avatars.githubusercontent.com/u/5237032?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bon-chi", + "html_url": "https://github.com/bon-chi", + "followers_url": "https://api.github.com/users/bon-chi/followers", + "following_url": "https://api.github.com/users/bon-chi/following{/other_user}", + "gists_url": "https://api.github.com/users/bon-chi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bon-chi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bon-chi/subscriptions", + "organizations_url": "https://api.github.com/users/bon-chi/orgs", + "repos_url": "https://api.github.com/users/bon-chi/repos", + "events_url": "https://api.github.com/users/bon-chi/events{/privacy}", + "received_events_url": "https://api.github.com/users/bon-chi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bon-chi/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/bon-chi/nand2tetris", + "forks_url": "https://api.github.com/repos/bon-chi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bon-chi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bon-chi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bon-chi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bon-chi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bon-chi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bon-chi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bon-chi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bon-chi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bon-chi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bon-chi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bon-chi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bon-chi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bon-chi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bon-chi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bon-chi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bon-chi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bon-chi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bon-chi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bon-chi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bon-chi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bon-chi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bon-chi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bon-chi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bon-chi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bon-chi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bon-chi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bon-chi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bon-chi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bon-chi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bon-chi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bon-chi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bon-chi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bon-chi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bon-chi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bon-chi/nand2tetris/deployments", + "created_at": "2015-04-28T06:43:25Z", + "updated_at": "2015-04-28T16:48:20Z", + "pushed_at": "2015-06-06T05:41:23Z", + "git_url": "git://github.com/bon-chi/nand2tetris.git", + "ssh_url": "git@github.com:bon-chi/nand2tetris.git", + "clone_url": "https://github.com/bon-chi/nand2tetris.git", + "svn_url": "https://github.com/bon-chi/nand2tetris", + "homepage": null, + "size": 456, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 35539833, + "name": "coursera-nand2tetris", + "full_name": "Paulche/coursera-nand2tetris", + "owner": { + "login": "Paulche", + "id": 554135, + "avatar_url": "https://avatars.githubusercontent.com/u/554135?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Paulche", + "html_url": "https://github.com/Paulche", + "followers_url": "https://api.github.com/users/Paulche/followers", + "following_url": "https://api.github.com/users/Paulche/following{/other_user}", + "gists_url": "https://api.github.com/users/Paulche/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Paulche/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Paulche/subscriptions", + "organizations_url": "https://api.github.com/users/Paulche/orgs", + "repos_url": "https://api.github.com/users/Paulche/repos", + "events_url": "https://api.github.com/users/Paulche/events{/privacy}", + "received_events_url": "https://api.github.com/users/Paulche/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Paulche/coursera-nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Paulche/coursera-nand2tetris", + "forks_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Paulche/coursera-nand2tetris/deployments", + "created_at": "2015-05-13T09:21:50Z", + "updated_at": "2015-06-08T06:55:35Z", + "pushed_at": "2015-06-14T08:06:08Z", + "git_url": "git://github.com/Paulche/coursera-nand2tetris.git", + "ssh_url": "git@github.com:Paulche/coursera-nand2tetris.git", + "clone_url": "https://github.com/Paulche/coursera-nand2tetris.git", + "svn_url": "https://github.com/Paulche/coursera-nand2tetris", + "homepage": null, + "size": 1967, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34464842, + "name": "Nand2Tetris", + "full_name": "yejiming/Nand2Tetris", + "owner": { + "login": "yejiming", + "id": 10279806, + "avatar_url": "https://avatars.githubusercontent.com/u/10279806?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yejiming", + "html_url": "https://github.com/yejiming", + "followers_url": "https://api.github.com/users/yejiming/followers", + "following_url": "https://api.github.com/users/yejiming/following{/other_user}", + "gists_url": "https://api.github.com/users/yejiming/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yejiming/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yejiming/subscriptions", + "organizations_url": "https://api.github.com/users/yejiming/orgs", + "repos_url": "https://api.github.com/users/yejiming/repos", + "events_url": "https://api.github.com/users/yejiming/events{/privacy}", + "received_events_url": "https://api.github.com/users/yejiming/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yejiming/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/yejiming/Nand2Tetris", + "forks_url": "https://api.github.com/repos/yejiming/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/yejiming/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yejiming/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yejiming/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/yejiming/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yejiming/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yejiming/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/yejiming/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yejiming/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yejiming/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/yejiming/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yejiming/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yejiming/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yejiming/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yejiming/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yejiming/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/yejiming/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yejiming/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yejiming/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yejiming/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/yejiming/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yejiming/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yejiming/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yejiming/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yejiming/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yejiming/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yejiming/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/yejiming/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yejiming/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/yejiming/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yejiming/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yejiming/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yejiming/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yejiming/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yejiming/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yejiming/Nand2Tetris/deployments", + "created_at": "2015-04-23T15:30:28Z", + "updated_at": "2015-04-28T14:01:27Z", + "pushed_at": "2015-04-28T14:01:26Z", + "git_url": "git://github.com/yejiming/Nand2Tetris.git", + "ssh_url": "git@github.com:yejiming/Nand2Tetris.git", + "clone_url": "https://github.com/yejiming/Nand2Tetris.git", + "svn_url": "https://github.com/yejiming/Nand2Tetris", + "homepage": null, + "size": 348, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34310079, + "name": "Nand2tetris", + "full_name": "ganeshredcobra/Nand2tetris", + "owner": { + "login": "ganeshredcobra", + "id": 265046, + "avatar_url": "https://avatars.githubusercontent.com/u/265046?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ganeshredcobra", + "html_url": "https://github.com/ganeshredcobra", + "followers_url": "https://api.github.com/users/ganeshredcobra/followers", + "following_url": "https://api.github.com/users/ganeshredcobra/following{/other_user}", + "gists_url": "https://api.github.com/users/ganeshredcobra/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ganeshredcobra/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ganeshredcobra/subscriptions", + "organizations_url": "https://api.github.com/users/ganeshredcobra/orgs", + "repos_url": "https://api.github.com/users/ganeshredcobra/repos", + "events_url": "https://api.github.com/users/ganeshredcobra/events{/privacy}", + "received_events_url": "https://api.github.com/users/ganeshredcobra/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ganeshredcobra/Nand2tetris", + "description": "Coursera Nand2tetris coursework", + "fork": false, + "url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris", + "forks_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ganeshredcobra/Nand2tetris/deployments", + "created_at": "2015-04-21T07:00:37Z", + "updated_at": "2015-04-23T18:32:22Z", + "pushed_at": "2015-04-23T18:32:21Z", + "git_url": "git://github.com/ganeshredcobra/Nand2tetris.git", + "ssh_url": "git@github.com:ganeshredcobra/Nand2tetris.git", + "clone_url": "https://github.com/ganeshredcobra/Nand2tetris.git", + "svn_url": "https://github.com/ganeshredcobra/Nand2tetris", + "homepage": "", + "size": 656, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34239370, + "name": "Nand2Tetris", + "full_name": "oleduc/Nand2Tetris", + "owner": { + "login": "oleduc", + "id": 2044375, + "avatar_url": "https://avatars.githubusercontent.com/u/2044375?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/oleduc", + "html_url": "https://github.com/oleduc", + "followers_url": "https://api.github.com/users/oleduc/followers", + "following_url": "https://api.github.com/users/oleduc/following{/other_user}", + "gists_url": "https://api.github.com/users/oleduc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/oleduc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oleduc/subscriptions", + "organizations_url": "https://api.github.com/users/oleduc/orgs", + "repos_url": "https://api.github.com/users/oleduc/repos", + "events_url": "https://api.github.com/users/oleduc/events{/privacy}", + "received_events_url": "https://api.github.com/users/oleduc/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/oleduc/Nand2Tetris", + "description": "My solutions for the Nand2Tetris course.", + "fork": false, + "url": "https://api.github.com/repos/oleduc/Nand2Tetris", + "forks_url": "https://api.github.com/repos/oleduc/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/oleduc/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/oleduc/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/oleduc/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/oleduc/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/oleduc/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/oleduc/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/oleduc/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/oleduc/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/oleduc/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/oleduc/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/oleduc/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/oleduc/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/oleduc/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/oleduc/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/oleduc/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/oleduc/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/oleduc/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/oleduc/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/oleduc/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/oleduc/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/oleduc/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/oleduc/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/oleduc/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/oleduc/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/oleduc/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/oleduc/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/oleduc/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/oleduc/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/oleduc/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/oleduc/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/oleduc/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/oleduc/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/oleduc/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/oleduc/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/oleduc/Nand2Tetris/deployments", + "created_at": "2015-04-20T05:13:40Z", + "updated_at": "2015-05-05T01:25:12Z", + "pushed_at": "2015-05-05T01:25:12Z", + "git_url": "git://github.com/oleduc/Nand2Tetris.git", + "ssh_url": "git@github.com:oleduc/Nand2Tetris.git", + "clone_url": "https://github.com/oleduc/Nand2Tetris.git", + "svn_url": "https://github.com/oleduc/Nand2Tetris", + "homepage": null, + "size": 704, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34218531, + "name": "Nand2Tetris", + "full_name": "allarm/Nand2Tetris", + "owner": { + "login": "allarm", + "id": 12021673, + "avatar_url": "https://avatars.githubusercontent.com/u/12021673?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/allarm", + "html_url": "https://github.com/allarm", + "followers_url": "https://api.github.com/users/allarm/followers", + "following_url": "https://api.github.com/users/allarm/following{/other_user}", + "gists_url": "https://api.github.com/users/allarm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/allarm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/allarm/subscriptions", + "organizations_url": "https://api.github.com/users/allarm/orgs", + "repos_url": "https://api.github.com/users/allarm/repos", + "events_url": "https://api.github.com/users/allarm/events{/privacy}", + "received_events_url": "https://api.github.com/users/allarm/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/allarm/Nand2Tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/allarm/Nand2Tetris", + "forks_url": "https://api.github.com/repos/allarm/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/allarm/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/allarm/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/allarm/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/allarm/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/allarm/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/allarm/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/allarm/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/allarm/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/allarm/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/allarm/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/allarm/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/allarm/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/allarm/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/allarm/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/allarm/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/allarm/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/allarm/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/allarm/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/allarm/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/allarm/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/allarm/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/allarm/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/allarm/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/allarm/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/allarm/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/allarm/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/allarm/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/allarm/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/allarm/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/allarm/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/allarm/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/allarm/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/allarm/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/allarm/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/allarm/Nand2Tetris/deployments", + "created_at": "2015-04-19T18:23:24Z", + "updated_at": "2015-04-21T20:02:10Z", + "pushed_at": "2015-04-21T20:02:09Z", + "git_url": "git://github.com/allarm/Nand2Tetris.git", + "ssh_url": "git@github.com:allarm/Nand2Tetris.git", + "clone_url": "https://github.com/allarm/Nand2Tetris.git", + "svn_url": "https://github.com/allarm/Nand2Tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34420110, + "name": "nand2tetris", + "full_name": "dstodolny/nand2tetris", + "owner": { + "login": "dstodolny", + "id": 8601093, + "avatar_url": "https://avatars.githubusercontent.com/u/8601093?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dstodolny", + "html_url": "https://github.com/dstodolny", + "followers_url": "https://api.github.com/users/dstodolny/followers", + "following_url": "https://api.github.com/users/dstodolny/following{/other_user}", + "gists_url": "https://api.github.com/users/dstodolny/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dstodolny/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dstodolny/subscriptions", + "organizations_url": "https://api.github.com/users/dstodolny/orgs", + "repos_url": "https://api.github.com/users/dstodolny/repos", + "events_url": "https://api.github.com/users/dstodolny/events{/privacy}", + "received_events_url": "https://api.github.com/users/dstodolny/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dstodolny/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dstodolny/nand2tetris", + "forks_url": "https://api.github.com/repos/dstodolny/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dstodolny/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dstodolny/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dstodolny/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dstodolny/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dstodolny/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dstodolny/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dstodolny/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dstodolny/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dstodolny/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dstodolny/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dstodolny/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dstodolny/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dstodolny/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dstodolny/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dstodolny/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dstodolny/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dstodolny/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dstodolny/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dstodolny/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dstodolny/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dstodolny/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dstodolny/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dstodolny/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dstodolny/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dstodolny/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dstodolny/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dstodolny/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dstodolny/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dstodolny/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dstodolny/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dstodolny/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dstodolny/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dstodolny/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dstodolny/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dstodolny/nand2tetris/deployments", + "created_at": "2015-04-22T22:45:00Z", + "updated_at": "2015-04-30T01:34:21Z", + "pushed_at": "2015-05-28T01:47:33Z", + "git_url": "git://github.com/dstodolny/nand2tetris.git", + "ssh_url": "git@github.com:dstodolny/nand2tetris.git", + "clone_url": "https://github.com/dstodolny/nand2tetris.git", + "svn_url": "https://github.com/dstodolny/nand2tetris", + "homepage": null, + "size": 416, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 33986303, + "name": "from_NAND_to_tetris", + "full_name": "dmmikl86/from_NAND_to_tetris", + "owner": { + "login": "dmmikl86", + "id": 2235191, + "avatar_url": "https://avatars.githubusercontent.com/u/2235191?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dmmikl86", + "html_url": "https://github.com/dmmikl86", + "followers_url": "https://api.github.com/users/dmmikl86/followers", + "following_url": "https://api.github.com/users/dmmikl86/following{/other_user}", + "gists_url": "https://api.github.com/users/dmmikl86/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dmmikl86/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dmmikl86/subscriptions", + "organizations_url": "https://api.github.com/users/dmmikl86/orgs", + "repos_url": "https://api.github.com/users/dmmikl86/repos", + "events_url": "https://api.github.com/users/dmmikl86/events{/privacy}", + "received_events_url": "https://api.github.com/users/dmmikl86/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dmmikl86/from_NAND_to_tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris", + "forks_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/forks", + "keys_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/teams", + "hooks_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/events", + "assignees_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/tags", + "blobs_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/languages", + "stargazers_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/subscription", + "commits_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/merges", + "archive_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/downloads", + "issues_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dmmikl86/from_NAND_to_tetris/deployments", + "created_at": "2015-04-15T09:55:45Z", + "updated_at": "2015-04-29T09:20:42Z", + "pushed_at": "2015-06-03T14:05:03Z", + "git_url": "git://github.com/dmmikl86/from_NAND_to_tetris.git", + "ssh_url": "git@github.com:dmmikl86/from_NAND_to_tetris.git", + "clone_url": "https://github.com/dmmikl86/from_NAND_to_tetris.git", + "svn_url": "https://github.com/dmmikl86/from_NAND_to_tetris", + "homepage": null, + "size": 732, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34038575, + "name": "NandToTetris", + "full_name": "raseshshah/NandToTetris", + "owner": { + "login": "raseshshah", + "id": 3692413, + "avatar_url": "https://avatars.githubusercontent.com/u/3692413?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/raseshshah", + "html_url": "https://github.com/raseshshah", + "followers_url": "https://api.github.com/users/raseshshah/followers", + "following_url": "https://api.github.com/users/raseshshah/following{/other_user}", + "gists_url": "https://api.github.com/users/raseshshah/gists{/gist_id}", + "starred_url": "https://api.github.com/users/raseshshah/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/raseshshah/subscriptions", + "organizations_url": "https://api.github.com/users/raseshshah/orgs", + "repos_url": "https://api.github.com/users/raseshshah/repos", + "events_url": "https://api.github.com/users/raseshshah/events{/privacy}", + "received_events_url": "https://api.github.com/users/raseshshah/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/raseshshah/NandToTetris", + "description": "Developing hack computer as part of NandToTetris coursera course.", + "fork": false, + "url": "https://api.github.com/repos/raseshshah/NandToTetris", + "forks_url": "https://api.github.com/repos/raseshshah/NandToTetris/forks", + "keys_url": "https://api.github.com/repos/raseshshah/NandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/raseshshah/NandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/raseshshah/NandToTetris/teams", + "hooks_url": "https://api.github.com/repos/raseshshah/NandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/raseshshah/NandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/raseshshah/NandToTetris/events", + "assignees_url": "https://api.github.com/repos/raseshshah/NandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/raseshshah/NandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/raseshshah/NandToTetris/tags", + "blobs_url": "https://api.github.com/repos/raseshshah/NandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/raseshshah/NandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/raseshshah/NandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/raseshshah/NandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/raseshshah/NandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/raseshshah/NandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/raseshshah/NandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/raseshshah/NandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/raseshshah/NandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/raseshshah/NandToTetris/subscription", + "commits_url": "https://api.github.com/repos/raseshshah/NandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/raseshshah/NandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/raseshshah/NandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/raseshshah/NandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/raseshshah/NandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/raseshshah/NandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/raseshshah/NandToTetris/merges", + "archive_url": "https://api.github.com/repos/raseshshah/NandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/raseshshah/NandToTetris/downloads", + "issues_url": "https://api.github.com/repos/raseshshah/NandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/raseshshah/NandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/raseshshah/NandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/raseshshah/NandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/raseshshah/NandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/raseshshah/NandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/raseshshah/NandToTetris/deployments", + "created_at": "2015-04-16T06:35:09Z", + "updated_at": "2015-04-22T15:17:36Z", + "pushed_at": "2015-04-22T15:17:35Z", + "git_url": "git://github.com/raseshshah/NandToTetris.git", + "ssh_url": "git@github.com:raseshshah/NandToTetris.git", + "clone_url": "https://github.com/raseshshah/NandToTetris.git", + "svn_url": "https://github.com/raseshshah/NandToTetris", + "homepage": null, + "size": 252, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 36079055, + "name": "nand2tetris", + "full_name": "docsis/nand2tetris", + "owner": { + "login": "docsis", + "id": 317230, + "avatar_url": "https://avatars.githubusercontent.com/u/317230?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/docsis", + "html_url": "https://github.com/docsis", + "followers_url": "https://api.github.com/users/docsis/followers", + "following_url": "https://api.github.com/users/docsis/following{/other_user}", + "gists_url": "https://api.github.com/users/docsis/gists{/gist_id}", + "starred_url": "https://api.github.com/users/docsis/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/docsis/subscriptions", + "organizations_url": "https://api.github.com/users/docsis/orgs", + "repos_url": "https://api.github.com/users/docsis/repos", + "events_url": "https://api.github.com/users/docsis/events{/privacy}", + "received_events_url": "https://api.github.com/users/docsis/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/docsis/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/docsis/nand2tetris", + "forks_url": "https://api.github.com/repos/docsis/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/docsis/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/docsis/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/docsis/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/docsis/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/docsis/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/docsis/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/docsis/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/docsis/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/docsis/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/docsis/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/docsis/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/docsis/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/docsis/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/docsis/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/docsis/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/docsis/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/docsis/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/docsis/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/docsis/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/docsis/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/docsis/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/docsis/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/docsis/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/docsis/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/docsis/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/docsis/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/docsis/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/docsis/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/docsis/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/docsis/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/docsis/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/docsis/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/docsis/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/docsis/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/docsis/nand2tetris/deployments", + "created_at": "2015-05-22T15:15:25Z", + "updated_at": "2015-05-22T15:34:15Z", + "pushed_at": "2015-05-22T15:34:07Z", + "git_url": "git://github.com/docsis/nand2tetris.git", + "ssh_url": "git@github.com:docsis/nand2tetris.git", + "clone_url": "https://github.com/docsis/nand2tetris.git", + "svn_url": "https://github.com/docsis/nand2tetris", + "homepage": null, + "size": 208, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34763879, + "name": "nand2tetris", + "full_name": "deltam/nand2tetris", + "owner": { + "login": "deltam", + "id": 193209, + "avatar_url": "https://avatars.githubusercontent.com/u/193209?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/deltam", + "html_url": "https://github.com/deltam", + "followers_url": "https://api.github.com/users/deltam/followers", + "following_url": "https://api.github.com/users/deltam/following{/other_user}", + "gists_url": "https://api.github.com/users/deltam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/deltam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/deltam/subscriptions", + "organizations_url": "https://api.github.com/users/deltam/orgs", + "repos_url": "https://api.github.com/users/deltam/repos", + "events_url": "https://api.github.com/users/deltam/events{/privacy}", + "received_events_url": "https://api.github.com/users/deltam/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/deltam/nand2tetris", + "description": "『コンピュータシステムの理論と実装』の実装記録", + "fork": false, + "url": "https://api.github.com/repos/deltam/nand2tetris", + "forks_url": "https://api.github.com/repos/deltam/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/deltam/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/deltam/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/deltam/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/deltam/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/deltam/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/deltam/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/deltam/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/deltam/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/deltam/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/deltam/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/deltam/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/deltam/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/deltam/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/deltam/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/deltam/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/deltam/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/deltam/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/deltam/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/deltam/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/deltam/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/deltam/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/deltam/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/deltam/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/deltam/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/deltam/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/deltam/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/deltam/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/deltam/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/deltam/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/deltam/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/deltam/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/deltam/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/deltam/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/deltam/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/deltam/nand2tetris/deployments", + "created_at": "2015-04-29T00:46:29Z", + "updated_at": "2015-05-08T04:49:21Z", + "pushed_at": "2015-05-16T23:38:30Z", + "git_url": "git://github.com/deltam/nand2tetris.git", + "ssh_url": "git@github.com:deltam/nand2tetris.git", + "clone_url": "https://github.com/deltam/nand2tetris.git", + "svn_url": "https://github.com/deltam/nand2tetris", + "homepage": "", + "size": 704, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 34908159, + "name": "nand2tetris", + "full_name": "mahavirj/nand2tetris", + "owner": { + "login": "mahavirj", + "id": 902446, + "avatar_url": "https://avatars.githubusercontent.com/u/902446?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mahavirj", + "html_url": "https://github.com/mahavirj", + "followers_url": "https://api.github.com/users/mahavirj/followers", + "following_url": "https://api.github.com/users/mahavirj/following{/other_user}", + "gists_url": "https://api.github.com/users/mahavirj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mahavirj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mahavirj/subscriptions", + "organizations_url": "https://api.github.com/users/mahavirj/orgs", + "repos_url": "https://api.github.com/users/mahavirj/repos", + "events_url": "https://api.github.com/users/mahavirj/events{/privacy}", + "received_events_url": "https://api.github.com/users/mahavirj/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mahavirj/nand2tetris", + "description": "Nand2Tetris Course Repository", + "fork": false, + "url": "https://api.github.com/repos/mahavirj/nand2tetris", + "forks_url": "https://api.github.com/repos/mahavirj/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mahavirj/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mahavirj/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mahavirj/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mahavirj/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mahavirj/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mahavirj/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mahavirj/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mahavirj/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mahavirj/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mahavirj/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mahavirj/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mahavirj/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mahavirj/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mahavirj/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mahavirj/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mahavirj/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mahavirj/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mahavirj/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mahavirj/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mahavirj/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mahavirj/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mahavirj/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mahavirj/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mahavirj/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mahavirj/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mahavirj/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mahavirj/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mahavirj/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mahavirj/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mahavirj/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mahavirj/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mahavirj/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mahavirj/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mahavirj/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mahavirj/nand2tetris/deployments", + "created_at": "2015-05-01T15:04:05Z", + "updated_at": "2015-05-27T17:01:59Z", + "pushed_at": "2015-05-27T17:01:58Z", + "git_url": "git://github.com/mahavirj/nand2tetris.git", + "ssh_url": "git@github.com:mahavirj/nand2tetris.git", + "clone_url": "https://github.com/mahavirj/nand2tetris.git", + "svn_url": "https://github.com/mahavirj/nand2tetris", + "homepage": null, + "size": 164, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 32637653, + "name": "nand2tetris_grading", + "full_name": "odavison/nand2tetris_grading", + "owner": { + "login": "odavison", + "id": 4430154, + "avatar_url": "https://avatars.githubusercontent.com/u/4430154?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/odavison", + "html_url": "https://github.com/odavison", + "followers_url": "https://api.github.com/users/odavison/followers", + "following_url": "https://api.github.com/users/odavison/following{/other_user}", + "gists_url": "https://api.github.com/users/odavison/gists{/gist_id}", + "starred_url": "https://api.github.com/users/odavison/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/odavison/subscriptions", + "organizations_url": "https://api.github.com/users/odavison/orgs", + "repos_url": "https://api.github.com/users/odavison/repos", + "events_url": "https://api.github.com/users/odavison/events{/privacy}", + "received_events_url": "https://api.github.com/users/odavison/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/odavison/nand2tetris_grading", + "description": "Grading scripts for nand2tetris labs (Projects 1-6) of CSCI2121 at Dalhousie University", + "fork": false, + "url": "https://api.github.com/repos/odavison/nand2tetris_grading", + "forks_url": "https://api.github.com/repos/odavison/nand2tetris_grading/forks", + "keys_url": "https://api.github.com/repos/odavison/nand2tetris_grading/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/odavison/nand2tetris_grading/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/odavison/nand2tetris_grading/teams", + "hooks_url": "https://api.github.com/repos/odavison/nand2tetris_grading/hooks", + "issue_events_url": "https://api.github.com/repos/odavison/nand2tetris_grading/issues/events{/number}", + "events_url": "https://api.github.com/repos/odavison/nand2tetris_grading/events", + "assignees_url": "https://api.github.com/repos/odavison/nand2tetris_grading/assignees{/user}", + "branches_url": "https://api.github.com/repos/odavison/nand2tetris_grading/branches{/branch}", + "tags_url": "https://api.github.com/repos/odavison/nand2tetris_grading/tags", + "blobs_url": "https://api.github.com/repos/odavison/nand2tetris_grading/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/odavison/nand2tetris_grading/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/odavison/nand2tetris_grading/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/odavison/nand2tetris_grading/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/odavison/nand2tetris_grading/statuses/{sha}", + "languages_url": "https://api.github.com/repos/odavison/nand2tetris_grading/languages", + "stargazers_url": "https://api.github.com/repos/odavison/nand2tetris_grading/stargazers", + "contributors_url": "https://api.github.com/repos/odavison/nand2tetris_grading/contributors", + "subscribers_url": "https://api.github.com/repos/odavison/nand2tetris_grading/subscribers", + "subscription_url": "https://api.github.com/repos/odavison/nand2tetris_grading/subscription", + "commits_url": "https://api.github.com/repos/odavison/nand2tetris_grading/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/odavison/nand2tetris_grading/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/odavison/nand2tetris_grading/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/odavison/nand2tetris_grading/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/odavison/nand2tetris_grading/contents/{+path}", + "compare_url": "https://api.github.com/repos/odavison/nand2tetris_grading/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/odavison/nand2tetris_grading/merges", + "archive_url": "https://api.github.com/repos/odavison/nand2tetris_grading/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/odavison/nand2tetris_grading/downloads", + "issues_url": "https://api.github.com/repos/odavison/nand2tetris_grading/issues{/number}", + "pulls_url": "https://api.github.com/repos/odavison/nand2tetris_grading/pulls{/number}", + "milestones_url": "https://api.github.com/repos/odavison/nand2tetris_grading/milestones{/number}", + "notifications_url": "https://api.github.com/repos/odavison/nand2tetris_grading/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/odavison/nand2tetris_grading/labels{/name}", + "releases_url": "https://api.github.com/repos/odavison/nand2tetris_grading/releases{/id}", + "deployments_url": "https://api.github.com/repos/odavison/nand2tetris_grading/deployments", + "created_at": "2015-03-21T15:34:30Z", + "updated_at": "2015-04-16T12:08:35Z", + "pushed_at": "2015-05-28T13:08:33Z", + "git_url": "git://github.com/odavison/nand2tetris_grading.git", + "ssh_url": "git@github.com:odavison/nand2tetris_grading.git", + "clone_url": "https://github.com/odavison/nand2tetris_grading.git", + "svn_url": "https://github.com/odavison/nand2tetris_grading", + "homepage": null, + "size": 612, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 43846778, + "name": "Nand2Tetris", + "full_name": "xiaoyifan/Nand2Tetris", + "owner": { + "login": "xiaoyifan", + "id": 9085563, + "avatar_url": "https://avatars.githubusercontent.com/u/9085563?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xiaoyifan", + "html_url": "https://github.com/xiaoyifan", + "followers_url": "https://api.github.com/users/xiaoyifan/followers", + "following_url": "https://api.github.com/users/xiaoyifan/following{/other_user}", + "gists_url": "https://api.github.com/users/xiaoyifan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xiaoyifan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xiaoyifan/subscriptions", + "organizations_url": "https://api.github.com/users/xiaoyifan/orgs", + "repos_url": "https://api.github.com/users/xiaoyifan/repos", + "events_url": "https://api.github.com/users/xiaoyifan/events{/privacy}", + "received_events_url": "https://api.github.com/users/xiaoyifan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/xiaoyifan/Nand2Tetris", + "description": "Implementation of all projects in Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris", + "forks_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/xiaoyifan/Nand2Tetris/deployments", + "created_at": "2015-10-07T21:50:40Z", + "updated_at": "2015-10-07T21:51:53Z", + "pushed_at": "2015-10-07T21:51:11Z", + "git_url": "git://github.com/xiaoyifan/Nand2Tetris.git", + "ssh_url": "git@github.com:xiaoyifan/Nand2Tetris.git", + "clone_url": "https://github.com/xiaoyifan/Nand2Tetris.git", + "svn_url": "https://github.com/xiaoyifan/Nand2Tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 244, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 48934838, + "name": "nand2tetris", + "full_name": "stonefruit/nand2tetris", + "owner": { + "login": "stonefruit", + "id": 3167732, + "avatar_url": "https://avatars.githubusercontent.com/u/3167732?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/stonefruit", + "html_url": "https://github.com/stonefruit", + "followers_url": "https://api.github.com/users/stonefruit/followers", + "following_url": "https://api.github.com/users/stonefruit/following{/other_user}", + "gists_url": "https://api.github.com/users/stonefruit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/stonefruit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/stonefruit/subscriptions", + "organizations_url": "https://api.github.com/users/stonefruit/orgs", + "repos_url": "https://api.github.com/users/stonefruit/repos", + "events_url": "https://api.github.com/users/stonefruit/events{/privacy}", + "received_events_url": "https://api.github.com/users/stonefruit/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/stonefruit/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/stonefruit/nand2tetris", + "forks_url": "https://api.github.com/repos/stonefruit/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/stonefruit/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/stonefruit/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/stonefruit/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/stonefruit/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/stonefruit/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/stonefruit/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/stonefruit/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/stonefruit/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/stonefruit/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/stonefruit/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/stonefruit/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/stonefruit/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/stonefruit/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/stonefruit/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/stonefruit/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/stonefruit/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/stonefruit/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/stonefruit/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/stonefruit/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/stonefruit/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/stonefruit/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/stonefruit/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/stonefruit/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/stonefruit/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/stonefruit/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/stonefruit/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/stonefruit/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/stonefruit/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/stonefruit/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/stonefruit/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/stonefruit/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/stonefruit/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/stonefruit/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/stonefruit/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/stonefruit/nand2tetris/deployments", + "created_at": "2016-01-03T05:10:36Z", + "updated_at": "2016-01-30T16:15:13Z", + "pushed_at": "2016-01-31T01:45:35Z", + "git_url": "git://github.com/stonefruit/nand2tetris.git", + "ssh_url": "git@github.com:stonefruit/nand2tetris.git", + "clone_url": "https://github.com/stonefruit/nand2tetris.git", + "svn_url": "https://github.com/stonefruit/nand2tetris", + "homepage": null, + "size": 538, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 48566387, + "name": "nand2tetris", + "full_name": "thetimetraveler/nand2tetris", + "owner": { + "login": "thetimetraveler", + "id": 3935560, + "avatar_url": "https://avatars.githubusercontent.com/u/3935560?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thetimetraveler", + "html_url": "https://github.com/thetimetraveler", + "followers_url": "https://api.github.com/users/thetimetraveler/followers", + "following_url": "https://api.github.com/users/thetimetraveler/following{/other_user}", + "gists_url": "https://api.github.com/users/thetimetraveler/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thetimetraveler/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thetimetraveler/subscriptions", + "organizations_url": "https://api.github.com/users/thetimetraveler/orgs", + "repos_url": "https://api.github.com/users/thetimetraveler/repos", + "events_url": "https://api.github.com/users/thetimetraveler/events{/privacy}", + "received_events_url": "https://api.github.com/users/thetimetraveler/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/thetimetraveler/nand2tetris", + "description": "nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/thetimetraveler/nand2tetris", + "forks_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/thetimetraveler/nand2tetris/deployments", + "created_at": "2015-12-25T04:22:13Z", + "updated_at": "2016-01-13T19:34:22Z", + "pushed_at": "2016-02-02T21:13:18Z", + "git_url": "git://github.com/thetimetraveler/nand2tetris.git", + "ssh_url": "git@github.com:thetimetraveler/nand2tetris.git", + "clone_url": "https://github.com/thetimetraveler/nand2tetris.git", + "svn_url": "https://github.com/thetimetraveler/nand2tetris", + "homepage": null, + "size": 515, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 45715665, + "name": "Nand2Tetris", + "full_name": "kaiyuand/Nand2Tetris", + "owner": { + "login": "kaiyuand", + "id": 10439490, + "avatar_url": "https://avatars.githubusercontent.com/u/10439490?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kaiyuand", + "html_url": "https://github.com/kaiyuand", + "followers_url": "https://api.github.com/users/kaiyuand/followers", + "following_url": "https://api.github.com/users/kaiyuand/following{/other_user}", + "gists_url": "https://api.github.com/users/kaiyuand/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kaiyuand/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kaiyuand/subscriptions", + "organizations_url": "https://api.github.com/users/kaiyuand/orgs", + "repos_url": "https://api.github.com/users/kaiyuand/repos", + "events_url": "https://api.github.com/users/kaiyuand/events{/privacy}", + "received_events_url": "https://api.github.com/users/kaiyuand/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kaiyuand/Nand2Tetris", + "description": "A 16-bit Computer System", + "fork": false, + "url": "https://api.github.com/repos/kaiyuand/Nand2Tetris", + "forks_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kaiyuand/Nand2Tetris/deployments", + "created_at": "2015-11-07T00:28:20Z", + "updated_at": "2015-11-07T00:29:44Z", + "pushed_at": "2015-11-07T00:29:42Z", + "git_url": "git://github.com/kaiyuand/Nand2Tetris.git", + "ssh_url": "git@github.com:kaiyuand/Nand2Tetris.git", + "clone_url": "https://github.com/kaiyuand/Nand2Tetris.git", + "svn_url": "https://github.com/kaiyuand/Nand2Tetris", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 45354514, + "name": "nand2tetris", + "full_name": "glaukommatos/nand2tetris", + "owner": { + "login": "glaukommatos", + "id": 7286083, + "avatar_url": "https://avatars.githubusercontent.com/u/7286083?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/glaukommatos", + "html_url": "https://github.com/glaukommatos", + "followers_url": "https://api.github.com/users/glaukommatos/followers", + "following_url": "https://api.github.com/users/glaukommatos/following{/other_user}", + "gists_url": "https://api.github.com/users/glaukommatos/gists{/gist_id}", + "starred_url": "https://api.github.com/users/glaukommatos/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glaukommatos/subscriptions", + "organizations_url": "https://api.github.com/users/glaukommatos/orgs", + "repos_url": "https://api.github.com/users/glaukommatos/repos", + "events_url": "https://api.github.com/users/glaukommatos/events{/privacy}", + "received_events_url": "https://api.github.com/users/glaukommatos/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/glaukommatos/nand2tetris", + "description": "Personal solutions to the problem sets for The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/glaukommatos/nand2tetris", + "forks_url": "https://api.github.com/repos/glaukommatos/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/glaukommatos/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/glaukommatos/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/glaukommatos/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/glaukommatos/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/glaukommatos/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/glaukommatos/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/glaukommatos/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/glaukommatos/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/glaukommatos/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/glaukommatos/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/glaukommatos/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/glaukommatos/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/glaukommatos/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/glaukommatos/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/glaukommatos/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/glaukommatos/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/glaukommatos/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/glaukommatos/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/glaukommatos/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/glaukommatos/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/glaukommatos/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/glaukommatos/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/glaukommatos/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/glaukommatos/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/glaukommatos/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/glaukommatos/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/glaukommatos/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/glaukommatos/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/glaukommatos/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/glaukommatos/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/glaukommatos/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/glaukommatos/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/glaukommatos/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/glaukommatos/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/glaukommatos/nand2tetris/deployments", + "created_at": "2015-11-01T19:37:02Z", + "updated_at": "2015-11-01T19:37:40Z", + "pushed_at": "2015-11-19T05:10:18Z", + "git_url": "git://github.com/glaukommatos/nand2tetris.git", + "ssh_url": "git@github.com:glaukommatos/nand2tetris.git", + "clone_url": "https://github.com/glaukommatos/nand2tetris.git", + "svn_url": "https://github.com/glaukommatos/nand2tetris", + "homepage": null, + "size": 537, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 46505982, + "name": "nand2tetris", + "full_name": "yoshkosh/nand2tetris", + "owner": { + "login": "yoshkosh", + "id": 42946, + "avatar_url": "https://avatars.githubusercontent.com/u/42946?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yoshkosh", + "html_url": "https://github.com/yoshkosh", + "followers_url": "https://api.github.com/users/yoshkosh/followers", + "following_url": "https://api.github.com/users/yoshkosh/following{/other_user}", + "gists_url": "https://api.github.com/users/yoshkosh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yoshkosh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yoshkosh/subscriptions", + "organizations_url": "https://api.github.com/users/yoshkosh/orgs", + "repos_url": "https://api.github.com/users/yoshkosh/repos", + "events_url": "https://api.github.com/users/yoshkosh/events{/privacy}", + "received_events_url": "https://api.github.com/users/yoshkosh/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yoshkosh/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/yoshkosh/nand2tetris", + "forks_url": "https://api.github.com/repos/yoshkosh/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/yoshkosh/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yoshkosh/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yoshkosh/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/yoshkosh/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yoshkosh/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yoshkosh/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/yoshkosh/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yoshkosh/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yoshkosh/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/yoshkosh/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yoshkosh/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yoshkosh/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yoshkosh/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yoshkosh/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yoshkosh/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/yoshkosh/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yoshkosh/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yoshkosh/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yoshkosh/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/yoshkosh/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yoshkosh/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yoshkosh/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yoshkosh/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yoshkosh/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yoshkosh/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yoshkosh/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/yoshkosh/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yoshkosh/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/yoshkosh/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yoshkosh/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yoshkosh/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yoshkosh/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yoshkosh/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yoshkosh/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yoshkosh/nand2tetris/deployments", + "created_at": "2015-11-19T16:40:56Z", + "updated_at": "2015-11-19T17:01:53Z", + "pushed_at": "2015-11-19T17:01:52Z", + "git_url": "git://github.com/yoshkosh/nand2tetris.git", + "ssh_url": "git@github.com:yoshkosh/nand2tetris.git", + "clone_url": "https://github.com/yoshkosh/nand2tetris.git", + "svn_url": "https://github.com/yoshkosh/nand2tetris", + "homepage": null, + "size": 151, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 46152382, + "name": "nand_to_tetris_files", + "full_name": "davidvgus/nand_to_tetris_files", + "owner": { + "login": "davidvgus", + "id": 1235314, + "avatar_url": "https://avatars.githubusercontent.com/u/1235314?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/davidvgus", + "html_url": "https://github.com/davidvgus", + "followers_url": "https://api.github.com/users/davidvgus/followers", + "following_url": "https://api.github.com/users/davidvgus/following{/other_user}", + "gists_url": "https://api.github.com/users/davidvgus/gists{/gist_id}", + "starred_url": "https://api.github.com/users/davidvgus/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/davidvgus/subscriptions", + "organizations_url": "https://api.github.com/users/davidvgus/orgs", + "repos_url": "https://api.github.com/users/davidvgus/repos", + "events_url": "https://api.github.com/users/davidvgus/events{/privacy}", + "received_events_url": "https://api.github.com/users/davidvgus/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/davidvgus/nand_to_tetris_files", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files", + "forks_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/forks", + "keys_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/teams", + "hooks_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/hooks", + "issue_events_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/issues/events{/number}", + "events_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/events", + "assignees_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/assignees{/user}", + "branches_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/branches{/branch}", + "tags_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/tags", + "blobs_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/statuses/{sha}", + "languages_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/languages", + "stargazers_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/stargazers", + "contributors_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/contributors", + "subscribers_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/subscribers", + "subscription_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/subscription", + "commits_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/contents/{+path}", + "compare_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/merges", + "archive_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/downloads", + "issues_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/issues{/number}", + "pulls_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/pulls{/number}", + "milestones_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/milestones{/number}", + "notifications_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/labels{/name}", + "releases_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/releases{/id}", + "deployments_url": "https://api.github.com/repos/davidvgus/nand_to_tetris_files/deployments", + "created_at": "2015-11-13T23:19:24Z", + "updated_at": "2015-11-13T23:21:57Z", + "pushed_at": "2015-11-28T07:31:50Z", + "git_url": "git://github.com/davidvgus/nand_to_tetris_files.git", + "ssh_url": "git@github.com:davidvgus/nand_to_tetris_files.git", + "clone_url": "https://github.com/davidvgus/nand_to_tetris_files.git", + "svn_url": "https://github.com/davidvgus/nand_to_tetris_files", + "homepage": null, + "size": 152, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 28742323, + "name": "NandToTetris", + "full_name": "napnac/NandToTetris", + "owner": { + "login": "napnac", + "id": 4095958, + "avatar_url": "https://avatars.githubusercontent.com/u/4095958?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/napnac", + "html_url": "https://github.com/napnac", + "followers_url": "https://api.github.com/users/napnac/followers", + "following_url": "https://api.github.com/users/napnac/following{/other_user}", + "gists_url": "https://api.github.com/users/napnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/napnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/napnac/subscriptions", + "organizations_url": "https://api.github.com/users/napnac/orgs", + "repos_url": "https://api.github.com/users/napnac/repos", + "events_url": "https://api.github.com/users/napnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/napnac/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/napnac/NandToTetris", + "description": "Projet du livre The Elements of Computing Systems : Building a Modern Computer from First Principles", + "fork": false, + "url": "https://api.github.com/repos/napnac/NandToTetris", + "forks_url": "https://api.github.com/repos/napnac/NandToTetris/forks", + "keys_url": "https://api.github.com/repos/napnac/NandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/napnac/NandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/napnac/NandToTetris/teams", + "hooks_url": "https://api.github.com/repos/napnac/NandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/napnac/NandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/napnac/NandToTetris/events", + "assignees_url": "https://api.github.com/repos/napnac/NandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/napnac/NandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/napnac/NandToTetris/tags", + "blobs_url": "https://api.github.com/repos/napnac/NandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/napnac/NandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/napnac/NandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/napnac/NandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/napnac/NandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/napnac/NandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/napnac/NandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/napnac/NandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/napnac/NandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/napnac/NandToTetris/subscription", + "commits_url": "https://api.github.com/repos/napnac/NandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/napnac/NandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/napnac/NandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/napnac/NandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/napnac/NandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/napnac/NandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/napnac/NandToTetris/merges", + "archive_url": "https://api.github.com/repos/napnac/NandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/napnac/NandToTetris/downloads", + "issues_url": "https://api.github.com/repos/napnac/NandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/napnac/NandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/napnac/NandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/napnac/NandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/napnac/NandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/napnac/NandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/napnac/NandToTetris/deployments", + "created_at": "2015-01-03T11:42:53Z", + "updated_at": "2015-10-13T18:23:43Z", + "pushed_at": "2015-12-12T16:41:51Z", + "git_url": "git://github.com/napnac/NandToTetris.git", + "ssh_url": "git@github.com:napnac/NandToTetris.git", + "clone_url": "https://github.com/napnac/NandToTetris.git", + "svn_url": "https://github.com/napnac/NandToTetris", + "homepage": "http://napnac.ga/projets/nandtotetris.html", + "size": 591, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 47205746, + "name": "nand2tetris", + "full_name": "mavant/nand2tetris", + "owner": { + "login": "mavant", + "id": 4933667, + "avatar_url": "https://avatars.githubusercontent.com/u/4933667?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mavant", + "html_url": "https://github.com/mavant", + "followers_url": "https://api.github.com/users/mavant/followers", + "following_url": "https://api.github.com/users/mavant/following{/other_user}", + "gists_url": "https://api.github.com/users/mavant/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mavant/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mavant/subscriptions", + "organizations_url": "https://api.github.com/users/mavant/orgs", + "repos_url": "https://api.github.com/users/mavant/repos", + "events_url": "https://api.github.com/users/mavant/events{/privacy}", + "received_events_url": "https://api.github.com/users/mavant/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mavant/nand2tetris", + "description": "Solutions and scratch work for nand2tetris (Elements of Computing Systems)", + "fork": false, + "url": "https://api.github.com/repos/mavant/nand2tetris", + "forks_url": "https://api.github.com/repos/mavant/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mavant/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mavant/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mavant/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mavant/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mavant/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mavant/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mavant/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mavant/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mavant/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mavant/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mavant/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mavant/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mavant/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mavant/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mavant/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mavant/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mavant/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mavant/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mavant/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mavant/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mavant/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mavant/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mavant/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mavant/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mavant/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mavant/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mavant/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mavant/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mavant/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mavant/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mavant/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mavant/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mavant/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mavant/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mavant/nand2tetris/deployments", + "created_at": "2015-12-01T17:24:45Z", + "updated_at": "2015-12-01T17:25:30Z", + "pushed_at": "2015-12-03T03:35:19Z", + "git_url": "git://github.com/mavant/nand2tetris.git", + "ssh_url": "git@github.com:mavant/nand2tetris.git", + "clone_url": "https://github.com/mavant/nand2tetris.git", + "svn_url": "https://github.com/mavant/nand2tetris", + "homepage": null, + "size": 165, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 48077063, + "name": "tetris.c64", + "full_name": "mssarts128/tetris.c64", + "owner": { + "login": "mssarts128", + "id": 4229965, + "avatar_url": "https://avatars.githubusercontent.com/u/4229965?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mssarts128", + "html_url": "https://github.com/mssarts128", + "followers_url": "https://api.github.com/users/mssarts128/followers", + "following_url": "https://api.github.com/users/mssarts128/following{/other_user}", + "gists_url": "https://api.github.com/users/mssarts128/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mssarts128/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mssarts128/subscriptions", + "organizations_url": "https://api.github.com/users/mssarts128/orgs", + "repos_url": "https://api.github.com/users/mssarts128/repos", + "events_url": "https://api.github.com/users/mssarts128/events{/privacy}", + "received_events_url": "https://api.github.com/users/mssarts128/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mssarts128/tetris.c64", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/mssarts128/tetris.c64", + "forks_url": "https://api.github.com/repos/mssarts128/tetris.c64/forks", + "keys_url": "https://api.github.com/repos/mssarts128/tetris.c64/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mssarts128/tetris.c64/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mssarts128/tetris.c64/teams", + "hooks_url": "https://api.github.com/repos/mssarts128/tetris.c64/hooks", + "issue_events_url": "https://api.github.com/repos/mssarts128/tetris.c64/issues/events{/number}", + "events_url": "https://api.github.com/repos/mssarts128/tetris.c64/events", + "assignees_url": "https://api.github.com/repos/mssarts128/tetris.c64/assignees{/user}", + "branches_url": "https://api.github.com/repos/mssarts128/tetris.c64/branches{/branch}", + "tags_url": "https://api.github.com/repos/mssarts128/tetris.c64/tags", + "blobs_url": "https://api.github.com/repos/mssarts128/tetris.c64/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mssarts128/tetris.c64/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mssarts128/tetris.c64/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mssarts128/tetris.c64/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mssarts128/tetris.c64/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mssarts128/tetris.c64/languages", + "stargazers_url": "https://api.github.com/repos/mssarts128/tetris.c64/stargazers", + "contributors_url": "https://api.github.com/repos/mssarts128/tetris.c64/contributors", + "subscribers_url": "https://api.github.com/repos/mssarts128/tetris.c64/subscribers", + "subscription_url": "https://api.github.com/repos/mssarts128/tetris.c64/subscription", + "commits_url": "https://api.github.com/repos/mssarts128/tetris.c64/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mssarts128/tetris.c64/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mssarts128/tetris.c64/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mssarts128/tetris.c64/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mssarts128/tetris.c64/contents/{+path}", + "compare_url": "https://api.github.com/repos/mssarts128/tetris.c64/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mssarts128/tetris.c64/merges", + "archive_url": "https://api.github.com/repos/mssarts128/tetris.c64/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mssarts128/tetris.c64/downloads", + "issues_url": "https://api.github.com/repos/mssarts128/tetris.c64/issues{/number}", + "pulls_url": "https://api.github.com/repos/mssarts128/tetris.c64/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mssarts128/tetris.c64/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mssarts128/tetris.c64/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mssarts128/tetris.c64/labels{/name}", + "releases_url": "https://api.github.com/repos/mssarts128/tetris.c64/releases{/id}", + "deployments_url": "https://api.github.com/repos/mssarts128/tetris.c64/deployments", + "created_at": "2015-12-16T00:30:59Z", + "updated_at": "2015-12-16T00:31:06Z", + "pushed_at": "2015-12-16T00:31:04Z", + "git_url": "git://github.com/mssarts128/tetris.c64.git", + "ssh_url": "git@github.com:mssarts128/tetris.c64.git", + "clone_url": "https://github.com/mssarts128/tetris.c64.git", + "svn_url": "https://github.com/mssarts128/tetris.c64", + "homepage": null, + "size": 53, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 26598386, + "name": "GBA-AssesmentOneTetris", + "full_name": "gamereat/GBA-AssesmentOneTetris", + "owner": { + "login": "gamereat", + "id": 7132438, + "avatar_url": "https://avatars.githubusercontent.com/u/7132438?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gamereat", + "html_url": "https://github.com/gamereat", + "followers_url": "https://api.github.com/users/gamereat/followers", + "following_url": "https://api.github.com/users/gamereat/following{/other_user}", + "gists_url": "https://api.github.com/users/gamereat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gamereat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gamereat/subscriptions", + "organizations_url": "https://api.github.com/users/gamereat/orgs", + "repos_url": "https://api.github.com/users/gamereat/repos", + "events_url": "https://api.github.com/users/gamereat/events{/privacy}", + "received_events_url": "https://api.github.com/users/gamereat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gamereat/GBA-AssesmentOneTetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris", + "forks_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/forks", + "keys_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/teams", + "hooks_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/hooks", + "issue_events_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/events", + "assignees_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/tags", + "blobs_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/languages", + "stargazers_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/stargazers", + "contributors_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/contributors", + "subscribers_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/subscribers", + "subscription_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/subscription", + "commits_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/merges", + "archive_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/downloads", + "issues_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gamereat/GBA-AssesmentOneTetris/deployments", + "created_at": "2014-11-13T17:07:45Z", + "updated_at": "2016-01-09T00:04:35Z", + "pushed_at": "2014-12-17T18:06:58Z", + "git_url": "git://github.com/gamereat/GBA-AssesmentOneTetris.git", + "ssh_url": "git@github.com:gamereat/GBA-AssesmentOneTetris.git", + "clone_url": "https://github.com/gamereat/GBA-AssesmentOneTetris.git", + "svn_url": "https://github.com/gamereat/GBA-AssesmentOneTetris", + "homepage": null, + "size": 2410, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 49715513, + "name": "nand2tetris", + "full_name": "bartelski/nand2tetris", + "owner": { + "login": "bartelski", + "id": 1690346, + "avatar_url": "https://avatars.githubusercontent.com/u/1690346?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bartelski", + "html_url": "https://github.com/bartelski", + "followers_url": "https://api.github.com/users/bartelski/followers", + "following_url": "https://api.github.com/users/bartelski/following{/other_user}", + "gists_url": "https://api.github.com/users/bartelski/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bartelski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bartelski/subscriptions", + "organizations_url": "https://api.github.com/users/bartelski/orgs", + "repos_url": "https://api.github.com/users/bartelski/repos", + "events_url": "https://api.github.com/users/bartelski/events{/privacy}", + "received_events_url": "https://api.github.com/users/bartelski/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bartelski/nand2tetris", + "description": "The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/bartelski/nand2tetris", + "forks_url": "https://api.github.com/repos/bartelski/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bartelski/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bartelski/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bartelski/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bartelski/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bartelski/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bartelski/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bartelski/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bartelski/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bartelski/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bartelski/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bartelski/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bartelski/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bartelski/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bartelski/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bartelski/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bartelski/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bartelski/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bartelski/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bartelski/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bartelski/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bartelski/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bartelski/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bartelski/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bartelski/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bartelski/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bartelski/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bartelski/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bartelski/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bartelski/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bartelski/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bartelski/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bartelski/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bartelski/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bartelski/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bartelski/nand2tetris/deployments", + "created_at": "2016-01-15T11:37:31Z", + "updated_at": "2016-01-15T11:37:36Z", + "pushed_at": "2016-01-15T11:38:34Z", + "git_url": "git://github.com/bartelski/nand2tetris.git", + "ssh_url": "git@github.com:bartelski/nand2tetris.git", + "clone_url": "https://github.com/bartelski/nand2tetris.git", + "svn_url": "https://github.com/bartelski/nand2tetris", + "homepage": null, + "size": 499, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 48874013, + "name": "nand2tetris", + "full_name": "KeiOkumura/nand2tetris", + "owner": { + "login": "KeiOkumura", + "id": 8915773, + "avatar_url": "https://avatars.githubusercontent.com/u/8915773?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/KeiOkumura", + "html_url": "https://github.com/KeiOkumura", + "followers_url": "https://api.github.com/users/KeiOkumura/followers", + "following_url": "https://api.github.com/users/KeiOkumura/following{/other_user}", + "gists_url": "https://api.github.com/users/KeiOkumura/gists{/gist_id}", + "starred_url": "https://api.github.com/users/KeiOkumura/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/KeiOkumura/subscriptions", + "organizations_url": "https://api.github.com/users/KeiOkumura/orgs", + "repos_url": "https://api.github.com/users/KeiOkumura/repos", + "events_url": "https://api.github.com/users/KeiOkumura/events{/privacy}", + "received_events_url": "https://api.github.com/users/KeiOkumura/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/KeiOkumura/nand2tetris", + "description": "コンピュータシステムの理論と実装より", + "fork": false, + "url": "https://api.github.com/repos/KeiOkumura/nand2tetris", + "forks_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/KeiOkumura/nand2tetris/deployments", + "created_at": "2016-01-01T09:11:20Z", + "updated_at": "2016-01-14T16:50:30Z", + "pushed_at": "2016-01-18T08:30:13Z", + "git_url": "git://github.com/KeiOkumura/nand2tetris.git", + "ssh_url": "git@github.com:KeiOkumura/nand2tetris.git", + "clone_url": "https://github.com/KeiOkumura/nand2tetris.git", + "svn_url": "https://github.com/KeiOkumura/nand2tetris", + "homepage": null, + "size": 192, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 53111709, + "name": "nand2tetris", + "full_name": "novakoki/nand2tetris", + "owner": { + "login": "novakoki", + "id": 7463456, + "avatar_url": "https://avatars.githubusercontent.com/u/7463456?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/novakoki", + "html_url": "https://github.com/novakoki", + "followers_url": "https://api.github.com/users/novakoki/followers", + "following_url": "https://api.github.com/users/novakoki/following{/other_user}", + "gists_url": "https://api.github.com/users/novakoki/gists{/gist_id}", + "starred_url": "https://api.github.com/users/novakoki/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/novakoki/subscriptions", + "organizations_url": "https://api.github.com/users/novakoki/orgs", + "repos_url": "https://api.github.com/users/novakoki/repos", + "events_url": "https://api.github.com/users/novakoki/events{/privacy}", + "received_events_url": "https://api.github.com/users/novakoki/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/novakoki/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/novakoki/nand2tetris", + "forks_url": "https://api.github.com/repos/novakoki/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/novakoki/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/novakoki/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/novakoki/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/novakoki/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/novakoki/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/novakoki/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/novakoki/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/novakoki/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/novakoki/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/novakoki/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/novakoki/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/novakoki/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/novakoki/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/novakoki/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/novakoki/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/novakoki/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/novakoki/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/novakoki/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/novakoki/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/novakoki/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/novakoki/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/novakoki/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/novakoki/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/novakoki/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/novakoki/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/novakoki/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/novakoki/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/novakoki/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/novakoki/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/novakoki/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/novakoki/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/novakoki/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/novakoki/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/novakoki/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/novakoki/nand2tetris/deployments", + "created_at": "2016-03-04T06:04:05Z", + "updated_at": "2016-03-04T07:01:50Z", + "pushed_at": "2016-03-04T07:01:47Z", + "git_url": "git://github.com/novakoki/nand2tetris.git", + "ssh_url": "git@github.com:novakoki/nand2tetris.git", + "clone_url": "https://github.com/novakoki/nand2tetris.git", + "svn_url": "https://github.com/novakoki/nand2tetris", + "homepage": null, + "size": 2082, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 51452998, + "name": "nand2tetris", + "full_name": "Zanadar/nand2tetris", + "owner": { + "login": "Zanadar", + "id": 5925347, + "avatar_url": "https://avatars.githubusercontent.com/u/5925347?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Zanadar", + "html_url": "https://github.com/Zanadar", + "followers_url": "https://api.github.com/users/Zanadar/followers", + "following_url": "https://api.github.com/users/Zanadar/following{/other_user}", + "gists_url": "https://api.github.com/users/Zanadar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zanadar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zanadar/subscriptions", + "organizations_url": "https://api.github.com/users/Zanadar/orgs", + "repos_url": "https://api.github.com/users/Zanadar/repos", + "events_url": "https://api.github.com/users/Zanadar/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zanadar/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Zanadar/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Zanadar/nand2tetris", + "forks_url": "https://api.github.com/repos/Zanadar/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Zanadar/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Zanadar/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Zanadar/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Zanadar/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Zanadar/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Zanadar/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Zanadar/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Zanadar/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Zanadar/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Zanadar/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Zanadar/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Zanadar/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Zanadar/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Zanadar/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Zanadar/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Zanadar/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Zanadar/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Zanadar/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Zanadar/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Zanadar/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Zanadar/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Zanadar/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Zanadar/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Zanadar/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Zanadar/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Zanadar/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Zanadar/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Zanadar/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Zanadar/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Zanadar/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Zanadar/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Zanadar/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Zanadar/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Zanadar/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Zanadar/nand2tetris/deployments", + "created_at": "2016-02-10T16:15:52Z", + "updated_at": "2016-02-10T16:16:09Z", + "pushed_at": "2016-03-08T17:51:40Z", + "git_url": "git://github.com/Zanadar/nand2tetris.git", + "ssh_url": "git@github.com:Zanadar/nand2tetris.git", + "clone_url": "https://github.com/Zanadar/nand2tetris.git", + "svn_url": "https://github.com/Zanadar/nand2tetris", + "homepage": null, + "size": 171, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 52087122, + "name": "Nand2Tetris", + "full_name": "st0012/Nand2Tetris", + "owner": { + "login": "st0012", + "id": 5079556, + "avatar_url": "https://avatars.githubusercontent.com/u/5079556?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/st0012", + "html_url": "https://github.com/st0012", + "followers_url": "https://api.github.com/users/st0012/followers", + "following_url": "https://api.github.com/users/st0012/following{/other_user}", + "gists_url": "https://api.github.com/users/st0012/gists{/gist_id}", + "starred_url": "https://api.github.com/users/st0012/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/st0012/subscriptions", + "organizations_url": "https://api.github.com/users/st0012/orgs", + "repos_url": "https://api.github.com/users/st0012/repos", + "events_url": "https://api.github.com/users/st0012/events{/privacy}", + "received_events_url": "https://api.github.com/users/st0012/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/st0012/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/st0012/Nand2Tetris", + "forks_url": "https://api.github.com/repos/st0012/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/st0012/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/st0012/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/st0012/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/st0012/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/st0012/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/st0012/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/st0012/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/st0012/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/st0012/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/st0012/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/st0012/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/st0012/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/st0012/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/st0012/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/st0012/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/st0012/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/st0012/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/st0012/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/st0012/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/st0012/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/st0012/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/st0012/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/st0012/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/st0012/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/st0012/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/st0012/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/st0012/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/st0012/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/st0012/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/st0012/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/st0012/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/st0012/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/st0012/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/st0012/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/st0012/Nand2Tetris/deployments", + "created_at": "2016-02-19T12:45:04Z", + "updated_at": "2016-02-19T12:45:22Z", + "pushed_at": "2016-03-25T01:57:09Z", + "git_url": "git://github.com/st0012/Nand2Tetris.git", + "ssh_url": "git@github.com:st0012/Nand2Tetris.git", + "clone_url": "https://github.com/st0012/Nand2Tetris.git", + "svn_url": "https://github.com/st0012/Nand2Tetris", + "homepage": null, + "size": 201, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 52207298, + "name": "Nand2Tetris", + "full_name": "trimcao/Nand2Tetris", + "owner": { + "login": "trimcao", + "id": 13499694, + "avatar_url": "https://avatars.githubusercontent.com/u/13499694?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/trimcao", + "html_url": "https://github.com/trimcao", + "followers_url": "https://api.github.com/users/trimcao/followers", + "following_url": "https://api.github.com/users/trimcao/following{/other_user}", + "gists_url": "https://api.github.com/users/trimcao/gists{/gist_id}", + "starred_url": "https://api.github.com/users/trimcao/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/trimcao/subscriptions", + "organizations_url": "https://api.github.com/users/trimcao/orgs", + "repos_url": "https://api.github.com/users/trimcao/repos", + "events_url": "https://api.github.com/users/trimcao/events{/privacy}", + "received_events_url": "https://api.github.com/users/trimcao/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/trimcao/Nand2Tetris", + "description": "Nand2Tetris course by Hebrew University @ Coursera ", + "fork": false, + "url": "https://api.github.com/repos/trimcao/Nand2Tetris", + "forks_url": "https://api.github.com/repos/trimcao/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/trimcao/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/trimcao/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/trimcao/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/trimcao/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/trimcao/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/trimcao/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/trimcao/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/trimcao/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/trimcao/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/trimcao/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/trimcao/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/trimcao/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/trimcao/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/trimcao/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/trimcao/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/trimcao/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/trimcao/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/trimcao/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/trimcao/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/trimcao/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/trimcao/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/trimcao/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/trimcao/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/trimcao/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/trimcao/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/trimcao/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/trimcao/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/trimcao/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/trimcao/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/trimcao/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/trimcao/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/trimcao/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/trimcao/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/trimcao/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/trimcao/Nand2Tetris/deployments", + "created_at": "2016-02-21T13:16:22Z", + "updated_at": "2016-02-21T13:17:19Z", + "pushed_at": "2016-03-26T04:28:14Z", + "git_url": "git://github.com/trimcao/Nand2Tetris.git", + "ssh_url": "git@github.com:trimcao/Nand2Tetris.git", + "clone_url": "https://github.com/trimcao/Nand2Tetris.git", + "svn_url": "https://github.com/trimcao/Nand2Tetris", + "homepage": null, + "size": 536, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 53555741, + "name": "nand2tetris", + "full_name": "l1xiao/nand2tetris", + "owner": { + "login": "l1xiao", + "id": 6694585, + "avatar_url": "https://avatars.githubusercontent.com/u/6694585?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/l1xiao", + "html_url": "https://github.com/l1xiao", + "followers_url": "https://api.github.com/users/l1xiao/followers", + "following_url": "https://api.github.com/users/l1xiao/following{/other_user}", + "gists_url": "https://api.github.com/users/l1xiao/gists{/gist_id}", + "starred_url": "https://api.github.com/users/l1xiao/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/l1xiao/subscriptions", + "organizations_url": "https://api.github.com/users/l1xiao/orgs", + "repos_url": "https://api.github.com/users/l1xiao/repos", + "events_url": "https://api.github.com/users/l1xiao/events{/privacy}", + "received_events_url": "https://api.github.com/users/l1xiao/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/l1xiao/nand2tetris", + "description": "nand2tetris part1", + "fork": false, + "url": "https://api.github.com/repos/l1xiao/nand2tetris", + "forks_url": "https://api.github.com/repos/l1xiao/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/l1xiao/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/l1xiao/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/l1xiao/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/l1xiao/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/l1xiao/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/l1xiao/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/l1xiao/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/l1xiao/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/l1xiao/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/l1xiao/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/l1xiao/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/l1xiao/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/l1xiao/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/l1xiao/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/l1xiao/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/l1xiao/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/l1xiao/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/l1xiao/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/l1xiao/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/l1xiao/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/l1xiao/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/l1xiao/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/l1xiao/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/l1xiao/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/l1xiao/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/l1xiao/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/l1xiao/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/l1xiao/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/l1xiao/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/l1xiao/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/l1xiao/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/l1xiao/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/l1xiao/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/l1xiao/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/l1xiao/nand2tetris/deployments", + "created_at": "2016-03-10T04:46:59Z", + "updated_at": "2016-03-10T04:47:11Z", + "pushed_at": "2016-03-27T08:21:15Z", + "git_url": "git://github.com/l1xiao/nand2tetris.git", + "ssh_url": "git@github.com:l1xiao/nand2tetris.git", + "clone_url": "https://github.com/l1xiao/nand2tetris.git", + "svn_url": "https://github.com/l1xiao/nand2tetris", + "homepage": null, + "size": 603, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 54709770, + "name": "nand2tetris", + "full_name": "sixthextinction/nand2tetris", + "owner": { + "login": "sixthextinction", + "id": 8657811, + "avatar_url": "https://avatars.githubusercontent.com/u/8657811?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sixthextinction", + "html_url": "https://github.com/sixthextinction", + "followers_url": "https://api.github.com/users/sixthextinction/followers", + "following_url": "https://api.github.com/users/sixthextinction/following{/other_user}", + "gists_url": "https://api.github.com/users/sixthextinction/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sixthextinction/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sixthextinction/subscriptions", + "organizations_url": "https://api.github.com/users/sixthextinction/orgs", + "repos_url": "https://api.github.com/users/sixthextinction/repos", + "events_url": "https://api.github.com/users/sixthextinction/events{/privacy}", + "received_events_url": "https://api.github.com/users/sixthextinction/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sixthextinction/nand2tetris", + "description": "Coursera version", + "fork": false, + "url": "https://api.github.com/repos/sixthextinction/nand2tetris", + "forks_url": "https://api.github.com/repos/sixthextinction/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/sixthextinction/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sixthextinction/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sixthextinction/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/sixthextinction/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/sixthextinction/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/sixthextinction/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/sixthextinction/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/sixthextinction/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/sixthextinction/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/sixthextinction/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sixthextinction/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sixthextinction/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sixthextinction/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sixthextinction/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sixthextinction/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/sixthextinction/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/sixthextinction/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/sixthextinction/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/sixthextinction/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/sixthextinction/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sixthextinction/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sixthextinction/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sixthextinction/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sixthextinction/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/sixthextinction/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sixthextinction/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/sixthextinction/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sixthextinction/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/sixthextinction/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/sixthextinction/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sixthextinction/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sixthextinction/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sixthextinction/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/sixthextinction/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/sixthextinction/nand2tetris/deployments", + "created_at": "2016-03-25T09:40:40Z", + "updated_at": "2016-03-25T09:57:00Z", + "pushed_at": "2016-03-25T10:08:50Z", + "git_url": "git://github.com/sixthextinction/nand2tetris.git", + "ssh_url": "git@github.com:sixthextinction/nand2tetris.git", + "clone_url": "https://github.com/sixthextinction/nand2tetris.git", + "svn_url": "https://github.com/sixthextinction/nand2tetris", + "homepage": null, + "size": 134, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 52307820, + "name": "Nand2Tetris", + "full_name": "MIchael-Winkler/Nand2Tetris", + "owner": { + "login": "MIchael-Winkler", + "id": 17417098, + "avatar_url": "https://avatars.githubusercontent.com/u/17417098?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MIchael-Winkler", + "html_url": "https://github.com/MIchael-Winkler", + "followers_url": "https://api.github.com/users/MIchael-Winkler/followers", + "following_url": "https://api.github.com/users/MIchael-Winkler/following{/other_user}", + "gists_url": "https://api.github.com/users/MIchael-Winkler/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MIchael-Winkler/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MIchael-Winkler/subscriptions", + "organizations_url": "https://api.github.com/users/MIchael-Winkler/orgs", + "repos_url": "https://api.github.com/users/MIchael-Winkler/repos", + "events_url": "https://api.github.com/users/MIchael-Winkler/events{/privacy}", + "received_events_url": "https://api.github.com/users/MIchael-Winkler/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MIchael-Winkler/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris", + "forks_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/MIchael-Winkler/Nand2Tetris/deployments", + "created_at": "2016-02-22T21:37:52Z", + "updated_at": "2016-02-22T21:39:59Z", + "pushed_at": "2016-02-22T21:39:57Z", + "git_url": "git://github.com/MIchael-Winkler/Nand2Tetris.git", + "ssh_url": "git@github.com:MIchael-Winkler/Nand2Tetris.git", + "clone_url": "https://github.com/MIchael-Winkler/Nand2Tetris.git", + "svn_url": "https://github.com/MIchael-Winkler/Nand2Tetris", + "homepage": null, + "size": 1955, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 52663876, + "name": "nand2tetris", + "full_name": "lagzda/nand2tetris", + "owner": { + "login": "lagzda", + "id": 9280639, + "avatar_url": "https://avatars.githubusercontent.com/u/9280639?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lagzda", + "html_url": "https://github.com/lagzda", + "followers_url": "https://api.github.com/users/lagzda/followers", + "following_url": "https://api.github.com/users/lagzda/following{/other_user}", + "gists_url": "https://api.github.com/users/lagzda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lagzda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lagzda/subscriptions", + "organizations_url": "https://api.github.com/users/lagzda/orgs", + "repos_url": "https://api.github.com/users/lagzda/repos", + "events_url": "https://api.github.com/users/lagzda/events{/privacy}", + "received_events_url": "https://api.github.com/users/lagzda/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lagzda/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/lagzda/nand2tetris", + "forks_url": "https://api.github.com/repos/lagzda/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lagzda/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lagzda/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lagzda/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lagzda/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lagzda/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lagzda/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lagzda/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lagzda/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lagzda/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lagzda/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lagzda/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lagzda/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lagzda/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lagzda/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lagzda/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lagzda/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lagzda/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lagzda/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lagzda/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lagzda/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lagzda/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lagzda/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lagzda/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lagzda/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lagzda/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lagzda/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lagzda/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lagzda/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lagzda/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lagzda/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lagzda/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lagzda/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lagzda/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lagzda/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lagzda/nand2tetris/deployments", + "created_at": "2016-02-27T11:37:27Z", + "updated_at": "2016-02-27T11:41:18Z", + "pushed_at": "2016-03-01T16:41:47Z", + "git_url": "git://github.com/lagzda/nand2tetris.git", + "ssh_url": "git@github.com:lagzda/nand2tetris.git", + "clone_url": "https://github.com/lagzda/nand2tetris.git", + "svn_url": "https://github.com/lagzda/nand2tetris", + "homepage": null, + "size": 167, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 50462338, + "name": "nand2tetris", + "full_name": "slarrain/nand2tetris", + "owner": { + "login": "slarrain", + "id": 9893834, + "avatar_url": "https://avatars.githubusercontent.com/u/9893834?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/slarrain", + "html_url": "https://github.com/slarrain", + "followers_url": "https://api.github.com/users/slarrain/followers", + "following_url": "https://api.github.com/users/slarrain/following{/other_user}", + "gists_url": "https://api.github.com/users/slarrain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/slarrain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/slarrain/subscriptions", + "organizations_url": "https://api.github.com/users/slarrain/orgs", + "repos_url": "https://api.github.com/users/slarrain/repos", + "events_url": "https://api.github.com/users/slarrain/events{/privacy}", + "received_events_url": "https://api.github.com/users/slarrain/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/slarrain/nand2tetris", + "description": "Repository of Introduction to Computer Systems from Uchicago that follows the nand2tetris curriculum", + "fork": false, + "url": "https://api.github.com/repos/slarrain/nand2tetris", + "forks_url": "https://api.github.com/repos/slarrain/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/slarrain/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/slarrain/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/slarrain/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/slarrain/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/slarrain/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/slarrain/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/slarrain/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/slarrain/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/slarrain/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/slarrain/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/slarrain/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/slarrain/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/slarrain/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/slarrain/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/slarrain/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/slarrain/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/slarrain/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/slarrain/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/slarrain/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/slarrain/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/slarrain/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/slarrain/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/slarrain/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/slarrain/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/slarrain/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/slarrain/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/slarrain/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/slarrain/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/slarrain/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/slarrain/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/slarrain/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/slarrain/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/slarrain/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/slarrain/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/slarrain/nand2tetris/deployments", + "created_at": "2016-01-26T21:59:19Z", + "updated_at": "2016-01-26T22:02:19Z", + "pushed_at": "2016-03-14T05:49:00Z", + "git_url": "git://github.com/slarrain/nand2tetris.git", + "ssh_url": "git@github.com:slarrain/nand2tetris.git", + "clone_url": "https://github.com/slarrain/nand2tetris.git", + "svn_url": "https://github.com/slarrain/nand2tetris", + "homepage": null, + "size": 687, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 54332208, + "name": "nand2Tetris", + "full_name": "gmuraleekrishna/nand2Tetris", + "owner": { + "login": "gmuraleekrishna", + "id": 8102394, + "avatar_url": "https://avatars.githubusercontent.com/u/8102394?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gmuraleekrishna", + "html_url": "https://github.com/gmuraleekrishna", + "followers_url": "https://api.github.com/users/gmuraleekrishna/followers", + "following_url": "https://api.github.com/users/gmuraleekrishna/following{/other_user}", + "gists_url": "https://api.github.com/users/gmuraleekrishna/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gmuraleekrishna/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gmuraleekrishna/subscriptions", + "organizations_url": "https://api.github.com/users/gmuraleekrishna/orgs", + "repos_url": "https://api.github.com/users/gmuraleekrishna/repos", + "events_url": "https://api.github.com/users/gmuraleekrishna/events{/privacy}", + "received_events_url": "https://api.github.com/users/gmuraleekrishna/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gmuraleekrishna/nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris", + "forks_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gmuraleekrishna/nand2Tetris/deployments", + "created_at": "2016-03-20T18:00:02Z", + "updated_at": "2016-03-20T18:01:42Z", + "pushed_at": "2016-03-20T18:01:40Z", + "git_url": "git://github.com/gmuraleekrishna/nand2Tetris.git", + "ssh_url": "git@github.com:gmuraleekrishna/nand2Tetris.git", + "clone_url": "https://github.com/gmuraleekrishna/nand2Tetris.git", + "svn_url": "https://github.com/gmuraleekrishna/nand2Tetris", + "homepage": null, + "size": 505, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 48966707, + "name": "nand2tetris", + "full_name": "go717franciswang/nand2tetris", + "owner": { + "login": "go717franciswang", + "id": 3183961, + "avatar_url": "https://avatars.githubusercontent.com/u/3183961?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/go717franciswang", + "html_url": "https://github.com/go717franciswang", + "followers_url": "https://api.github.com/users/go717franciswang/followers", + "following_url": "https://api.github.com/users/go717franciswang/following{/other_user}", + "gists_url": "https://api.github.com/users/go717franciswang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/go717franciswang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/go717franciswang/subscriptions", + "organizations_url": "https://api.github.com/users/go717franciswang/orgs", + "repos_url": "https://api.github.com/users/go717franciswang/repos", + "events_url": "https://api.github.com/users/go717franciswang/events{/privacy}", + "received_events_url": "https://api.github.com/users/go717franciswang/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/go717franciswang/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/go717franciswang/nand2tetris", + "forks_url": "https://api.github.com/repos/go717franciswang/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/go717franciswang/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/go717franciswang/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/go717franciswang/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/go717franciswang/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/go717franciswang/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/go717franciswang/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/go717franciswang/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/go717franciswang/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/go717franciswang/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/go717franciswang/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/go717franciswang/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/go717franciswang/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/go717franciswang/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/go717franciswang/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/go717franciswang/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/go717franciswang/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/go717franciswang/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/go717franciswang/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/go717franciswang/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/go717franciswang/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/go717franciswang/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/go717franciswang/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/go717franciswang/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/go717franciswang/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/go717franciswang/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/go717franciswang/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/go717franciswang/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/go717franciswang/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/go717franciswang/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/go717franciswang/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/go717franciswang/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/go717franciswang/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/go717franciswang/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/go717franciswang/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/go717franciswang/nand2tetris/deployments", + "created_at": "2016-01-04T00:53:52Z", + "updated_at": "2016-01-11T03:56:51Z", + "pushed_at": "2016-03-20T02:25:37Z", + "git_url": "git://github.com/go717franciswang/nand2tetris.git", + "ssh_url": "git@github.com:go717franciswang/nand2tetris.git", + "clone_url": "https://github.com/go717franciswang/nand2tetris.git", + "svn_url": "https://github.com/go717franciswang/nand2tetris", + "homepage": null, + "size": 244, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 51969382, + "name": "nand2tetris", + "full_name": "psattiza/nand2tetris", + "owner": { + "login": "psattiza", + "id": 13973416, + "avatar_url": "https://avatars.githubusercontent.com/u/13973416?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/psattiza", + "html_url": "https://github.com/psattiza", + "followers_url": "https://api.github.com/users/psattiza/followers", + "following_url": "https://api.github.com/users/psattiza/following{/other_user}", + "gists_url": "https://api.github.com/users/psattiza/gists{/gist_id}", + "starred_url": "https://api.github.com/users/psattiza/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/psattiza/subscriptions", + "organizations_url": "https://api.github.com/users/psattiza/orgs", + "repos_url": "https://api.github.com/users/psattiza/repos", + "events_url": "https://api.github.com/users/psattiza/events{/privacy}", + "received_events_url": "https://api.github.com/users/psattiza/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/psattiza/nand2tetris", + "description": "nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/psattiza/nand2tetris", + "forks_url": "https://api.github.com/repos/psattiza/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/psattiza/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/psattiza/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/psattiza/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/psattiza/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/psattiza/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/psattiza/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/psattiza/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/psattiza/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/psattiza/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/psattiza/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/psattiza/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/psattiza/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/psattiza/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/psattiza/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/psattiza/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/psattiza/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/psattiza/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/psattiza/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/psattiza/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/psattiza/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/psattiza/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/psattiza/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/psattiza/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/psattiza/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/psattiza/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/psattiza/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/psattiza/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/psattiza/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/psattiza/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/psattiza/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/psattiza/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/psattiza/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/psattiza/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/psattiza/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/psattiza/nand2tetris/deployments", + "created_at": "2016-02-18T01:36:58Z", + "updated_at": "2016-02-18T01:38:58Z", + "pushed_at": "2016-03-17T05:25:39Z", + "git_url": "git://github.com/psattiza/nand2tetris.git", + "ssh_url": "git@github.com:psattiza/nand2tetris.git", + "clone_url": "https://github.com/psattiza/nand2tetris.git", + "svn_url": "https://github.com/psattiza/nand2tetris", + "homepage": null, + "size": 184, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 53259812, + "name": "Nand2Tetris", + "full_name": "YuvalFatal/Nand2Tetris", + "owner": { + "login": "YuvalFatal", + "id": 5262322, + "avatar_url": "https://avatars.githubusercontent.com/u/5262322?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/YuvalFatal", + "html_url": "https://github.com/YuvalFatal", + "followers_url": "https://api.github.com/users/YuvalFatal/followers", + "following_url": "https://api.github.com/users/YuvalFatal/following{/other_user}", + "gists_url": "https://api.github.com/users/YuvalFatal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/YuvalFatal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/YuvalFatal/subscriptions", + "organizations_url": "https://api.github.com/users/YuvalFatal/orgs", + "repos_url": "https://api.github.com/users/YuvalFatal/repos", + "events_url": "https://api.github.com/users/YuvalFatal/events{/privacy}", + "received_events_url": "https://api.github.com/users/YuvalFatal/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/YuvalFatal/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris", + "forks_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/YuvalFatal/Nand2Tetris/deployments", + "created_at": "2016-03-06T14:48:29Z", + "updated_at": "2016-03-06T14:49:21Z", + "pushed_at": "2016-03-17T15:37:08Z", + "git_url": "git://github.com/YuvalFatal/Nand2Tetris.git", + "ssh_url": "git@github.com:YuvalFatal/Nand2Tetris.git", + "clone_url": "https://github.com/YuvalFatal/Nand2Tetris.git", + "svn_url": "https://github.com/YuvalFatal/Nand2Tetris", + "homepage": null, + "size": 514, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 54282738, + "name": "nand2Tetris", + "full_name": "rlabuonora/nand2Tetris", + "owner": { + "login": "rlabuonora", + "id": 10402561, + "avatar_url": "https://avatars.githubusercontent.com/u/10402561?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rlabuonora", + "html_url": "https://github.com/rlabuonora", + "followers_url": "https://api.github.com/users/rlabuonora/followers", + "following_url": "https://api.github.com/users/rlabuonora/following{/other_user}", + "gists_url": "https://api.github.com/users/rlabuonora/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rlabuonora/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rlabuonora/subscriptions", + "organizations_url": "https://api.github.com/users/rlabuonora/orgs", + "repos_url": "https://api.github.com/users/rlabuonora/repos", + "events_url": "https://api.github.com/users/rlabuonora/events{/privacy}", + "received_events_url": "https://api.github.com/users/rlabuonora/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rlabuonora/nand2Tetris", + "description": "Code for nand2Tetris course (www.nand2tetris.org)", + "fork": false, + "url": "https://api.github.com/repos/rlabuonora/nand2Tetris", + "forks_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/rlabuonora/nand2Tetris/deployments", + "created_at": "2016-03-19T19:12:08Z", + "updated_at": "2016-03-19T19:13:15Z", + "pushed_at": "2016-04-04T13:08:28Z", + "git_url": "git://github.com/rlabuonora/nand2Tetris.git", + "ssh_url": "git@github.com:rlabuonora/nand2Tetris.git", + "clone_url": "https://github.com/rlabuonora/nand2Tetris.git", + "svn_url": "https://github.com/rlabuonora/nand2Tetris", + "homepage": null, + "size": 182, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 55492950, + "name": "nand2Tetris", + "full_name": "cypriendker/nand2Tetris", + "owner": { + "login": "cypriendker", + "id": 14874788, + "avatar_url": "https://avatars.githubusercontent.com/u/14874788?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cypriendker", + "html_url": "https://github.com/cypriendker", + "followers_url": "https://api.github.com/users/cypriendker/followers", + "following_url": "https://api.github.com/users/cypriendker/following{/other_user}", + "gists_url": "https://api.github.com/users/cypriendker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cypriendker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cypriendker/subscriptions", + "organizations_url": "https://api.github.com/users/cypriendker/orgs", + "repos_url": "https://api.github.com/users/cypriendker/repos", + "events_url": "https://api.github.com/users/cypriendker/events{/privacy}", + "received_events_url": "https://api.github.com/users/cypriendker/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cypriendker/nand2Tetris", + "description": "Building a computer from the first principle", + "fork": false, + "url": "https://api.github.com/repos/cypriendker/nand2Tetris", + "forks_url": "https://api.github.com/repos/cypriendker/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/cypriendker/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cypriendker/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cypriendker/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/cypriendker/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cypriendker/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cypriendker/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/cypriendker/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cypriendker/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cypriendker/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/cypriendker/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cypriendker/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cypriendker/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cypriendker/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cypriendker/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cypriendker/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/cypriendker/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cypriendker/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cypriendker/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cypriendker/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/cypriendker/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cypriendker/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cypriendker/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cypriendker/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cypriendker/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cypriendker/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cypriendker/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/cypriendker/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cypriendker/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/cypriendker/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cypriendker/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cypriendker/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cypriendker/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cypriendker/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cypriendker/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cypriendker/nand2Tetris/deployments", + "created_at": "2016-04-05T09:19:26Z", + "updated_at": "2016-04-05T09:35:23Z", + "pushed_at": "2016-04-05T09:35:20Z", + "git_url": "git://github.com/cypriendker/nand2Tetris.git", + "ssh_url": "git@github.com:cypriendker/nand2Tetris.git", + "clone_url": "https://github.com/cypriendker/nand2Tetris.git", + "svn_url": "https://github.com/cypriendker/nand2Tetris", + "homepage": null, + "size": 8632, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 49128906, + "name": "nand2tetris", + "full_name": "AmaanC/nand2tetris", + "owner": { + "login": "AmaanC", + "id": 1172631, + "avatar_url": "https://avatars.githubusercontent.com/u/1172631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/AmaanC", + "html_url": "https://github.com/AmaanC", + "followers_url": "https://api.github.com/users/AmaanC/followers", + "following_url": "https://api.github.com/users/AmaanC/following{/other_user}", + "gists_url": "https://api.github.com/users/AmaanC/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AmaanC/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AmaanC/subscriptions", + "organizations_url": "https://api.github.com/users/AmaanC/orgs", + "repos_url": "https://api.github.com/users/AmaanC/repos", + "events_url": "https://api.github.com/users/AmaanC/events{/privacy}", + "received_events_url": "https://api.github.com/users/AmaanC/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/AmaanC/nand2tetris", + "description": "Files for the nand2tetris course (that I will hopefully finish)", + "fork": false, + "url": "https://api.github.com/repos/AmaanC/nand2tetris", + "forks_url": "https://api.github.com/repos/AmaanC/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/AmaanC/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AmaanC/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AmaanC/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/AmaanC/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/AmaanC/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/AmaanC/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/AmaanC/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/AmaanC/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/AmaanC/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/AmaanC/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AmaanC/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AmaanC/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AmaanC/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AmaanC/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AmaanC/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/AmaanC/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/AmaanC/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/AmaanC/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/AmaanC/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/AmaanC/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AmaanC/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AmaanC/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AmaanC/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AmaanC/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/AmaanC/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AmaanC/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/AmaanC/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AmaanC/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/AmaanC/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/AmaanC/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AmaanC/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AmaanC/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AmaanC/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/AmaanC/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/AmaanC/nand2tetris/deployments", + "created_at": "2016-01-06T10:33:02Z", + "updated_at": "2016-01-16T10:21:48Z", + "pushed_at": "2016-04-14T09:23:21Z", + "git_url": "git://github.com/AmaanC/nand2tetris.git", + "ssh_url": "git@github.com:AmaanC/nand2tetris.git", + "clone_url": "https://github.com/AmaanC/nand2tetris.git", + "svn_url": "https://github.com/AmaanC/nand2tetris", + "homepage": null, + "size": 180, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 56644167, + "name": "nand2tetris", + "full_name": "lawrenceue/nand2tetris", + "owner": { + "login": "lawrenceue", + "id": 9583359, + "avatar_url": "https://avatars.githubusercontent.com/u/9583359?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lawrenceue", + "html_url": "https://github.com/lawrenceue", + "followers_url": "https://api.github.com/users/lawrenceue/followers", + "following_url": "https://api.github.com/users/lawrenceue/following{/other_user}", + "gists_url": "https://api.github.com/users/lawrenceue/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lawrenceue/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lawrenceue/subscriptions", + "organizations_url": "https://api.github.com/users/lawrenceue/orgs", + "repos_url": "https://api.github.com/users/lawrenceue/repos", + "events_url": "https://api.github.com/users/lawrenceue/events{/privacy}", + "received_events_url": "https://api.github.com/users/lawrenceue/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lawrenceue/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/lawrenceue/nand2tetris", + "forks_url": "https://api.github.com/repos/lawrenceue/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lawrenceue/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lawrenceue/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lawrenceue/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lawrenceue/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lawrenceue/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lawrenceue/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lawrenceue/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lawrenceue/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lawrenceue/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lawrenceue/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lawrenceue/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lawrenceue/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lawrenceue/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lawrenceue/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lawrenceue/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lawrenceue/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lawrenceue/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lawrenceue/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lawrenceue/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lawrenceue/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lawrenceue/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lawrenceue/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lawrenceue/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lawrenceue/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lawrenceue/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lawrenceue/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lawrenceue/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lawrenceue/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lawrenceue/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lawrenceue/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lawrenceue/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lawrenceue/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lawrenceue/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lawrenceue/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lawrenceue/nand2tetris/deployments", + "created_at": "2016-04-20T01:09:36Z", + "updated_at": "2016-04-20T01:10:26Z", + "pushed_at": "2016-04-20T02:13:41Z", + "git_url": "git://github.com/lawrenceue/nand2tetris.git", + "ssh_url": "git@github.com:lawrenceue/nand2tetris.git", + "clone_url": "https://github.com/lawrenceue/nand2tetris.git", + "svn_url": "https://github.com/lawrenceue/nand2tetris", + "homepage": null, + "size": 500, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 55757990, + "name": "nand2tetris", + "full_name": "current1990/nand2tetris", + "owner": { + "login": "current1990", + "id": 3123256, + "avatar_url": "https://avatars.githubusercontent.com/u/3123256?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/current1990", + "html_url": "https://github.com/current1990", + "followers_url": "https://api.github.com/users/current1990/followers", + "following_url": "https://api.github.com/users/current1990/following{/other_user}", + "gists_url": "https://api.github.com/users/current1990/gists{/gist_id}", + "starred_url": "https://api.github.com/users/current1990/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/current1990/subscriptions", + "organizations_url": "https://api.github.com/users/current1990/orgs", + "repos_url": "https://api.github.com/users/current1990/repos", + "events_url": "https://api.github.com/users/current1990/events{/privacy}", + "received_events_url": "https://api.github.com/users/current1990/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/current1990/nand2tetris", + "description": "Nand2Tetris Project from \"Elements of computing system\"", + "fork": false, + "url": "https://api.github.com/repos/current1990/nand2tetris", + "forks_url": "https://api.github.com/repos/current1990/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/current1990/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/current1990/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/current1990/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/current1990/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/current1990/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/current1990/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/current1990/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/current1990/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/current1990/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/current1990/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/current1990/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/current1990/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/current1990/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/current1990/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/current1990/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/current1990/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/current1990/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/current1990/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/current1990/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/current1990/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/current1990/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/current1990/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/current1990/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/current1990/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/current1990/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/current1990/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/current1990/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/current1990/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/current1990/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/current1990/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/current1990/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/current1990/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/current1990/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/current1990/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/current1990/nand2tetris/deployments", + "created_at": "2016-04-08T07:05:16Z", + "updated_at": "2016-04-08T07:39:13Z", + "pushed_at": "2016-04-26T17:33:35Z", + "git_url": "git://github.com/current1990/nand2tetris.git", + "ssh_url": "git@github.com:current1990/nand2tetris.git", + "clone_url": "https://github.com/current1990/nand2tetris.git", + "svn_url": "https://github.com/current1990/nand2tetris", + "homepage": null, + "size": 171, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 57226094, + "name": "nand2tetris", + "full_name": "AlexAhern/nand2tetris", + "owner": { + "login": "AlexAhern", + "id": 16082622, + "avatar_url": "https://avatars.githubusercontent.com/u/16082622?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/AlexAhern", + "html_url": "https://github.com/AlexAhern", + "followers_url": "https://api.github.com/users/AlexAhern/followers", + "following_url": "https://api.github.com/users/AlexAhern/following{/other_user}", + "gists_url": "https://api.github.com/users/AlexAhern/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AlexAhern/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AlexAhern/subscriptions", + "organizations_url": "https://api.github.com/users/AlexAhern/orgs", + "repos_url": "https://api.github.com/users/AlexAhern/repos", + "events_url": "https://api.github.com/users/AlexAhern/events{/privacy}", + "received_events_url": "https://api.github.com/users/AlexAhern/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/AlexAhern/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/AlexAhern/nand2tetris", + "forks_url": "https://api.github.com/repos/AlexAhern/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/AlexAhern/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AlexAhern/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AlexAhern/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/AlexAhern/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/AlexAhern/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/AlexAhern/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/AlexAhern/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/AlexAhern/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/AlexAhern/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/AlexAhern/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AlexAhern/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AlexAhern/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AlexAhern/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AlexAhern/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AlexAhern/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/AlexAhern/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/AlexAhern/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/AlexAhern/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/AlexAhern/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/AlexAhern/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AlexAhern/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AlexAhern/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AlexAhern/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AlexAhern/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/AlexAhern/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AlexAhern/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/AlexAhern/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AlexAhern/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/AlexAhern/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/AlexAhern/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AlexAhern/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AlexAhern/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AlexAhern/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/AlexAhern/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/AlexAhern/nand2tetris/deployments", + "created_at": "2016-04-27T15:51:15Z", + "updated_at": "2016-04-27T15:51:49Z", + "pushed_at": "2016-05-04T14:22:48Z", + "git_url": "git://github.com/AlexAhern/nand2tetris.git", + "ssh_url": "git@github.com:AlexAhern/nand2tetris.git", + "clone_url": "https://github.com/AlexAhern/nand2tetris.git", + "svn_url": "https://github.com/AlexAhern/nand2tetris", + "homepage": null, + "size": 191, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 56970785, + "name": "nand2tetris", + "full_name": "yasunaga1192/nand2tetris", + "owner": { + "login": "yasunaga1192", + "id": 13289061, + "avatar_url": "https://avatars.githubusercontent.com/u/13289061?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yasunaga1192", + "html_url": "https://github.com/yasunaga1192", + "followers_url": "https://api.github.com/users/yasunaga1192/followers", + "following_url": "https://api.github.com/users/yasunaga1192/following{/other_user}", + "gists_url": "https://api.github.com/users/yasunaga1192/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yasunaga1192/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yasunaga1192/subscriptions", + "organizations_url": "https://api.github.com/users/yasunaga1192/orgs", + "repos_url": "https://api.github.com/users/yasunaga1192/repos", + "events_url": "https://api.github.com/users/yasunaga1192/events{/privacy}", + "received_events_url": "https://api.github.com/users/yasunaga1192/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yasunaga1192/nand2tetris", + "description": "「コンピュータシステムの理論と実装」の作業管理", + "fork": false, + "url": "https://api.github.com/repos/yasunaga1192/nand2tetris", + "forks_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yasunaga1192/nand2tetris/deployments", + "created_at": "2016-04-24T12:40:52Z", + "updated_at": "2016-04-24T12:41:36Z", + "pushed_at": "2016-04-24T12:53:11Z", + "git_url": "git://github.com/yasunaga1192/nand2tetris.git", + "ssh_url": "git@github.com:yasunaga1192/nand2tetris.git", + "clone_url": "https://github.com/yasunaga1192/nand2tetris.git", + "svn_url": "https://github.com/yasunaga1192/nand2tetris", + "homepage": null, + "size": 156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 51786798, + "name": "nand2tetris", + "full_name": "alicetang0618/nand2tetris", + "owner": { + "login": "alicetang0618", + "id": 8813301, + "avatar_url": "https://avatars.githubusercontent.com/u/8813301?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/alicetang0618", + "html_url": "https://github.com/alicetang0618", + "followers_url": "https://api.github.com/users/alicetang0618/followers", + "following_url": "https://api.github.com/users/alicetang0618/following{/other_user}", + "gists_url": "https://api.github.com/users/alicetang0618/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alicetang0618/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alicetang0618/subscriptions", + "organizations_url": "https://api.github.com/users/alicetang0618/orgs", + "repos_url": "https://api.github.com/users/alicetang0618/repos", + "events_url": "https://api.github.com/users/alicetang0618/events{/privacy}", + "received_events_url": "https://api.github.com/users/alicetang0618/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/alicetang0618/nand2tetris", + "description": "Course projects for Intro to Computer Systems", + "fork": false, + "url": "https://api.github.com/repos/alicetang0618/nand2tetris", + "forks_url": "https://api.github.com/repos/alicetang0618/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/alicetang0618/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alicetang0618/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alicetang0618/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/alicetang0618/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/alicetang0618/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/alicetang0618/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/alicetang0618/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/alicetang0618/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/alicetang0618/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/alicetang0618/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alicetang0618/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alicetang0618/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alicetang0618/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alicetang0618/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alicetang0618/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/alicetang0618/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/alicetang0618/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/alicetang0618/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/alicetang0618/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/alicetang0618/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alicetang0618/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alicetang0618/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alicetang0618/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alicetang0618/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/alicetang0618/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alicetang0618/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/alicetang0618/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alicetang0618/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/alicetang0618/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/alicetang0618/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alicetang0618/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alicetang0618/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alicetang0618/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/alicetang0618/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/alicetang0618/nand2tetris/deployments", + "created_at": "2016-02-15T21:24:43Z", + "updated_at": "2016-02-15T21:26:22Z", + "pushed_at": "2016-04-29T05:24:37Z", + "git_url": "git://github.com/alicetang0618/nand2tetris.git", + "ssh_url": "git@github.com:alicetang0618/nand2tetris.git", + "clone_url": "https://github.com/alicetang0618/nand2tetris.git", + "svn_url": "https://github.com/alicetang0618/nand2tetris", + "homepage": null, + "size": 259, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 57874646, + "name": "Nand2Tetris", + "full_name": "Huyuwei/Nand2Tetris", + "owner": { + "login": "Huyuwei", + "id": 17470319, + "avatar_url": "https://avatars.githubusercontent.com/u/17470319?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Huyuwei", + "html_url": "https://github.com/Huyuwei", + "followers_url": "https://api.github.com/users/Huyuwei/followers", + "following_url": "https://api.github.com/users/Huyuwei/following{/other_user}", + "gists_url": "https://api.github.com/users/Huyuwei/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Huyuwei/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Huyuwei/subscriptions", + "organizations_url": "https://api.github.com/users/Huyuwei/orgs", + "repos_url": "https://api.github.com/users/Huyuwei/repos", + "events_url": "https://api.github.com/users/Huyuwei/events{/privacy}", + "received_events_url": "https://api.github.com/users/Huyuwei/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Huyuwei/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Huyuwei/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Huyuwei/Nand2Tetris/deployments", + "created_at": "2016-05-02T08:20:28Z", + "updated_at": "2016-05-02T08:29:40Z", + "pushed_at": "2016-05-02T08:34:20Z", + "git_url": "git://github.com/Huyuwei/Nand2Tetris.git", + "ssh_url": "git@github.com:Huyuwei/Nand2Tetris.git", + "clone_url": "https://github.com/Huyuwei/Nand2Tetris.git", + "svn_url": "https://github.com/Huyuwei/Nand2Tetris", + "homepage": null, + "size": 24, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 55445260, + "name": "nand2tetris", + "full_name": "sammydre/nand2tetris", + "owner": { + "login": "sammydre", + "id": 404569, + "avatar_url": "https://avatars.githubusercontent.com/u/404569?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sammydre", + "html_url": "https://github.com/sammydre", + "followers_url": "https://api.github.com/users/sammydre/followers", + "following_url": "https://api.github.com/users/sammydre/following{/other_user}", + "gists_url": "https://api.github.com/users/sammydre/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sammydre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sammydre/subscriptions", + "organizations_url": "https://api.github.com/users/sammydre/orgs", + "repos_url": "https://api.github.com/users/sammydre/repos", + "events_url": "https://api.github.com/users/sammydre/events{/privacy}", + "received_events_url": "https://api.github.com/users/sammydre/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sammydre/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/sammydre/nand2tetris", + "forks_url": "https://api.github.com/repos/sammydre/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/sammydre/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sammydre/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sammydre/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/sammydre/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/sammydre/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/sammydre/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/sammydre/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/sammydre/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/sammydre/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/sammydre/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sammydre/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sammydre/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sammydre/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sammydre/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sammydre/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/sammydre/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/sammydre/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/sammydre/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/sammydre/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/sammydre/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sammydre/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sammydre/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sammydre/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sammydre/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/sammydre/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sammydre/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/sammydre/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sammydre/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/sammydre/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/sammydre/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sammydre/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sammydre/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sammydre/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/sammydre/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/sammydre/nand2tetris/deployments", + "created_at": "2016-04-04T21:07:47Z", + "updated_at": "2016-04-04T21:09:08Z", + "pushed_at": "2016-04-30T08:17:25Z", + "git_url": "git://github.com/sammydre/nand2tetris.git", + "ssh_url": "git@github.com:sammydre/nand2tetris.git", + "clone_url": "https://github.com/sammydre/nand2tetris.git", + "svn_url": "https://github.com/sammydre/nand2tetris", + "homepage": null, + "size": 2100, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 57863554, + "name": "nand2tetris", + "full_name": "Angeldude/nand2tetris", + "owner": { + "login": "Angeldude", + "id": 5219857, + "avatar_url": "https://avatars.githubusercontent.com/u/5219857?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Angeldude", + "html_url": "https://github.com/Angeldude", + "followers_url": "https://api.github.com/users/Angeldude/followers", + "following_url": "https://api.github.com/users/Angeldude/following{/other_user}", + "gists_url": "https://api.github.com/users/Angeldude/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Angeldude/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Angeldude/subscriptions", + "organizations_url": "https://api.github.com/users/Angeldude/orgs", + "repos_url": "https://api.github.com/users/Angeldude/repos", + "events_url": "https://api.github.com/users/Angeldude/events{/privacy}", + "received_events_url": "https://api.github.com/users/Angeldude/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Angeldude/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Angeldude/nand2tetris", + "forks_url": "https://api.github.com/repos/Angeldude/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Angeldude/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Angeldude/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Angeldude/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Angeldude/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Angeldude/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Angeldude/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Angeldude/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Angeldude/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Angeldude/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Angeldude/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Angeldude/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Angeldude/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Angeldude/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Angeldude/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Angeldude/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Angeldude/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Angeldude/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Angeldude/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Angeldude/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Angeldude/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Angeldude/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Angeldude/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Angeldude/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Angeldude/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Angeldude/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Angeldude/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Angeldude/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Angeldude/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Angeldude/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Angeldude/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Angeldude/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Angeldude/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Angeldude/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Angeldude/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Angeldude/nand2tetris/deployments", + "created_at": "2016-05-02T03:19:02Z", + "updated_at": "2016-05-02T03:19:46Z", + "pushed_at": "2016-05-02T03:20:24Z", + "git_url": "git://github.com/Angeldude/nand2tetris.git", + "ssh_url": "git@github.com:Angeldude/nand2tetris.git", + "clone_url": "https://github.com/Angeldude/nand2tetris.git", + "svn_url": "https://github.com/Angeldude/nand2tetris", + "homepage": null, + "size": 162, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 58306139, + "name": "nand2tetris", + "full_name": "spike01/nand2tetris", + "owner": { + "login": "spike01", + "id": 7307631, + "avatar_url": "https://avatars.githubusercontent.com/u/7307631?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/spike01", + "html_url": "https://github.com/spike01", + "followers_url": "https://api.github.com/users/spike01/followers", + "following_url": "https://api.github.com/users/spike01/following{/other_user}", + "gists_url": "https://api.github.com/users/spike01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/spike01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/spike01/subscriptions", + "organizations_url": "https://api.github.com/users/spike01/orgs", + "repos_url": "https://api.github.com/users/spike01/repos", + "events_url": "https://api.github.com/users/spike01/events{/privacy}", + "received_events_url": "https://api.github.com/users/spike01/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/spike01/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/spike01/nand2tetris", + "forks_url": "https://api.github.com/repos/spike01/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/spike01/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/spike01/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/spike01/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/spike01/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/spike01/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/spike01/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/spike01/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/spike01/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/spike01/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/spike01/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/spike01/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/spike01/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/spike01/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/spike01/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/spike01/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/spike01/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/spike01/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/spike01/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/spike01/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/spike01/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/spike01/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/spike01/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/spike01/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/spike01/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/spike01/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/spike01/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/spike01/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/spike01/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/spike01/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/spike01/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/spike01/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/spike01/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/spike01/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/spike01/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/spike01/nand2tetris/deployments", + "created_at": "2016-05-08T09:59:58Z", + "updated_at": "2016-05-08T10:00:30Z", + "pushed_at": "2016-05-08T10:02:06Z", + "git_url": "git://github.com/spike01/nand2tetris.git", + "ssh_url": "git@github.com:spike01/nand2tetris.git", + "clone_url": "https://github.com/spike01/nand2tetris.git", + "svn_url": "https://github.com/spike01/nand2tetris", + "homepage": null, + "size": 148, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 58558992, + "name": "nand2tetris", + "full_name": "xiongxin/nand2tetris", + "owner": { + "login": "xiongxin", + "id": 2803069, + "avatar_url": "https://avatars.githubusercontent.com/u/2803069?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xiongxin", + "html_url": "https://github.com/xiongxin", + "followers_url": "https://api.github.com/users/xiongxin/followers", + "following_url": "https://api.github.com/users/xiongxin/following{/other_user}", + "gists_url": "https://api.github.com/users/xiongxin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xiongxin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xiongxin/subscriptions", + "organizations_url": "https://api.github.com/users/xiongxin/orgs", + "repos_url": "https://api.github.com/users/xiongxin/repos", + "events_url": "https://api.github.com/users/xiongxin/events{/privacy}", + "received_events_url": "https://api.github.com/users/xiongxin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/xiongxin/nand2tetris", + "description": "nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/xiongxin/nand2tetris", + "forks_url": "https://api.github.com/repos/xiongxin/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/xiongxin/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xiongxin/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xiongxin/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/xiongxin/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/xiongxin/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/xiongxin/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/xiongxin/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/xiongxin/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/xiongxin/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/xiongxin/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xiongxin/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xiongxin/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xiongxin/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xiongxin/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xiongxin/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/xiongxin/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/xiongxin/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/xiongxin/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/xiongxin/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/xiongxin/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xiongxin/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xiongxin/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xiongxin/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xiongxin/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/xiongxin/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xiongxin/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/xiongxin/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xiongxin/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/xiongxin/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/xiongxin/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xiongxin/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xiongxin/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xiongxin/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/xiongxin/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/xiongxin/nand2tetris/deployments", + "created_at": "2016-05-11T15:50:55Z", + "updated_at": "2016-05-11T16:04:58Z", + "pushed_at": "2016-05-11T16:04:56Z", + "git_url": "git://github.com/xiongxin/nand2tetris.git", + "ssh_url": "git@github.com:xiongxin/nand2tetris.git", + "clone_url": "https://github.com/xiongxin/nand2tetris.git", + "svn_url": "https://github.com/xiongxin/nand2tetris", + "homepage": null, + "size": 163, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 41463104, + "name": "nand2tetris", + "full_name": "ReionChan/nand2tetris", + "owner": { + "login": "ReionChan", + "id": 12004482, + "avatar_url": "https://avatars.githubusercontent.com/u/12004482?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ReionChan", + "html_url": "https://github.com/ReionChan", + "followers_url": "https://api.github.com/users/ReionChan/followers", + "following_url": "https://api.github.com/users/ReionChan/following{/other_user}", + "gists_url": "https://api.github.com/users/ReionChan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ReionChan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ReionChan/subscriptions", + "organizations_url": "https://api.github.com/users/ReionChan/orgs", + "repos_url": "https://api.github.com/users/ReionChan/repos", + "events_url": "https://api.github.com/users/ReionChan/events{/privacy}", + "received_events_url": "https://api.github.com/users/ReionChan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ReionChan/nand2tetris", + "description": "The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/ReionChan/nand2tetris", + "forks_url": "https://api.github.com/repos/ReionChan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ReionChan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ReionChan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ReionChan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ReionChan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ReionChan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ReionChan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ReionChan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ReionChan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ReionChan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ReionChan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ReionChan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ReionChan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ReionChan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ReionChan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ReionChan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ReionChan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ReionChan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ReionChan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ReionChan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ReionChan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ReionChan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ReionChan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ReionChan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ReionChan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ReionChan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ReionChan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ReionChan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ReionChan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ReionChan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ReionChan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ReionChan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ReionChan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ReionChan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ReionChan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ReionChan/nand2tetris/deployments", + "created_at": "2015-08-27T03:13:15Z", + "updated_at": "2016-01-24T12:29:27Z", + "pushed_at": "2016-05-28T16:19:05Z", + "git_url": "git://github.com/ReionChan/nand2tetris.git", + "ssh_url": "git@github.com:ReionChan/nand2tetris.git", + "clone_url": "https://github.com/ReionChan/nand2tetris.git", + "svn_url": "https://github.com/ReionChan/nand2tetris", + "homepage": null, + "size": 1192, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 59611625, + "name": "nand2tetris", + "full_name": "alkass/nand2tetris", + "owner": { + "login": "alkass", + "id": 2851221, + "avatar_url": "https://avatars.githubusercontent.com/u/2851221?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/alkass", + "html_url": "https://github.com/alkass", + "followers_url": "https://api.github.com/users/alkass/followers", + "following_url": "https://api.github.com/users/alkass/following{/other_user}", + "gists_url": "https://api.github.com/users/alkass/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alkass/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alkass/subscriptions", + "organizations_url": "https://api.github.com/users/alkass/orgs", + "repos_url": "https://api.github.com/users/alkass/repos", + "events_url": "https://api.github.com/users/alkass/events{/privacy}", + "received_events_url": "https://api.github.com/users/alkass/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/alkass/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/alkass/nand2tetris", + "forks_url": "https://api.github.com/repos/alkass/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/alkass/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/alkass/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/alkass/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/alkass/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/alkass/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/alkass/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/alkass/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/alkass/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/alkass/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/alkass/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/alkass/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/alkass/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/alkass/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/alkass/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/alkass/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/alkass/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/alkass/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/alkass/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/alkass/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/alkass/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/alkass/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/alkass/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/alkass/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/alkass/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/alkass/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/alkass/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/alkass/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/alkass/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/alkass/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/alkass/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/alkass/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/alkass/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/alkass/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/alkass/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/alkass/nand2tetris/deployments", + "created_at": "2016-05-24T22:00:32Z", + "updated_at": "2016-05-24T22:01:40Z", + "pushed_at": "2016-05-27T01:23:58Z", + "git_url": "git://github.com/alkass/nand2tetris.git", + "ssh_url": "git@github.com:alkass/nand2tetris.git", + "clone_url": "https://github.com/alkass/nand2tetris.git", + "svn_url": "https://github.com/alkass/nand2tetris", + "homepage": null, + "size": 5611, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 58477088, + "name": "nand2tetris", + "full_name": "ivanovyordan/nand2tetris", + "owner": { + "login": "ivanovyordan", + "id": 979329, + "avatar_url": "https://avatars.githubusercontent.com/u/979329?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ivanovyordan", + "html_url": "https://github.com/ivanovyordan", + "followers_url": "https://api.github.com/users/ivanovyordan/followers", + "following_url": "https://api.github.com/users/ivanovyordan/following{/other_user}", + "gists_url": "https://api.github.com/users/ivanovyordan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ivanovyordan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ivanovyordan/subscriptions", + "organizations_url": "https://api.github.com/users/ivanovyordan/orgs", + "repos_url": "https://api.github.com/users/ivanovyordan/repos", + "events_url": "https://api.github.com/users/ivanovyordan/events{/privacy}", + "received_events_url": "https://api.github.com/users/ivanovyordan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ivanovyordan/nand2tetris", + "description": "nand2tetris solutions", + "fork": false, + "url": "https://api.github.com/repos/ivanovyordan/nand2tetris", + "forks_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ivanovyordan/nand2tetris/deployments", + "created_at": "2016-05-10T16:31:01Z", + "updated_at": "2016-05-15T05:05:27Z", + "pushed_at": "2016-05-29T18:27:19Z", + "git_url": "git://github.com/ivanovyordan/nand2tetris.git", + "ssh_url": "git@github.com:ivanovyordan/nand2tetris.git", + "clone_url": "https://github.com/ivanovyordan/nand2tetris.git", + "svn_url": "https://github.com/ivanovyordan/nand2tetris", + "homepage": "http://nand2tetris.org/", + "size": 177, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 59302651, + "name": "nand2tetris", + "full_name": "dco5/nand2tetris", + "owner": { + "login": "dco5", + "id": 3612771, + "avatar_url": "https://avatars.githubusercontent.com/u/3612771?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dco5", + "html_url": "https://github.com/dco5", + "followers_url": "https://api.github.com/users/dco5/followers", + "following_url": "https://api.github.com/users/dco5/following{/other_user}", + "gists_url": "https://api.github.com/users/dco5/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dco5/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dco5/subscriptions", + "organizations_url": "https://api.github.com/users/dco5/orgs", + "repos_url": "https://api.github.com/users/dco5/repos", + "events_url": "https://api.github.com/users/dco5/events{/privacy}", + "received_events_url": "https://api.github.com/users/dco5/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dco5/nand2tetris", + "description": "nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/dco5/nand2tetris", + "forks_url": "https://api.github.com/repos/dco5/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dco5/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dco5/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dco5/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dco5/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dco5/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dco5/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dco5/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dco5/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dco5/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dco5/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dco5/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dco5/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dco5/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dco5/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dco5/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dco5/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dco5/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dco5/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dco5/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dco5/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dco5/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dco5/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dco5/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dco5/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dco5/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dco5/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dco5/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dco5/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dco5/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dco5/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dco5/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dco5/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dco5/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dco5/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dco5/nand2tetris/deployments", + "created_at": "2016-05-20T14:48:42Z", + "updated_at": "2016-05-20T14:52:13Z", + "pushed_at": "2016-05-20T14:52:11Z", + "git_url": "git://github.com/dco5/nand2tetris.git", + "ssh_url": "git@github.com:dco5/nand2tetris.git", + "clone_url": "https://github.com/dco5/nand2tetris.git", + "svn_url": "https://github.com/dco5/nand2tetris", + "homepage": null, + "size": 156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 59434860, + "name": "Nand2Tetris", + "full_name": "yanmingy/Nand2Tetris", + "owner": { + "login": "yanmingy", + "id": 17456670, + "avatar_url": "https://avatars.githubusercontent.com/u/17456670?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yanmingy", + "html_url": "https://github.com/yanmingy", + "followers_url": "https://api.github.com/users/yanmingy/followers", + "following_url": "https://api.github.com/users/yanmingy/following{/other_user}", + "gists_url": "https://api.github.com/users/yanmingy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yanmingy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yanmingy/subscriptions", + "organizations_url": "https://api.github.com/users/yanmingy/orgs", + "repos_url": "https://api.github.com/users/yanmingy/repos", + "events_url": "https://api.github.com/users/yanmingy/events{/privacy}", + "received_events_url": "https://api.github.com/users/yanmingy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yanmingy/Nand2Tetris", + "description": "Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/yanmingy/Nand2Tetris", + "forks_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/yanmingy/Nand2Tetris/deployments", + "created_at": "2016-05-22T21:19:07Z", + "updated_at": "2016-05-22T21:33:57Z", + "pushed_at": "2016-05-22T21:33:34Z", + "git_url": "git://github.com/yanmingy/Nand2Tetris.git", + "ssh_url": "git@github.com:yanmingy/Nand2Tetris.git", + "clone_url": "https://github.com/yanmingy/Nand2Tetris.git", + "svn_url": "https://github.com/yanmingy/Nand2Tetris", + "homepage": "", + "size": 504, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 59260827, + "name": "Nand2tetris", + "full_name": "nao-otsu/Nand2tetris", + "owner": { + "login": "nao-otsu", + "id": 14013767, + "avatar_url": "https://avatars.githubusercontent.com/u/14013767?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nao-otsu", + "html_url": "https://github.com/nao-otsu", + "followers_url": "https://api.github.com/users/nao-otsu/followers", + "following_url": "https://api.github.com/users/nao-otsu/following{/other_user}", + "gists_url": "https://api.github.com/users/nao-otsu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nao-otsu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nao-otsu/subscriptions", + "organizations_url": "https://api.github.com/users/nao-otsu/orgs", + "repos_url": "https://api.github.com/users/nao-otsu/repos", + "events_url": "https://api.github.com/users/nao-otsu/events{/privacy}", + "received_events_url": "https://api.github.com/users/nao-otsu/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nao-otsu/Nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/nao-otsu/Nand2tetris", + "forks_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/forks", + "keys_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/events", + "assignees_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/merges", + "archive_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/nao-otsu/Nand2tetris/deployments", + "created_at": "2016-05-20T03:08:47Z", + "updated_at": "2016-05-20T03:17:32Z", + "pushed_at": "2016-05-25T05:32:05Z", + "git_url": "git://github.com/nao-otsu/Nand2tetris.git", + "ssh_url": "git@github.com:nao-otsu/Nand2tetris.git", + "clone_url": "https://github.com/nao-otsu/Nand2tetris.git", + "svn_url": "https://github.com/nao-otsu/Nand2tetris", + "homepage": null, + "size": 510, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 55948066, + "name": "Nand2Tetris", + "full_name": "fallsnow/Nand2Tetris", + "owner": { + "login": "fallsnow", + "id": 1739619, + "avatar_url": "https://avatars.githubusercontent.com/u/1739619?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/fallsnow", + "html_url": "https://github.com/fallsnow", + "followers_url": "https://api.github.com/users/fallsnow/followers", + "following_url": "https://api.github.com/users/fallsnow/following{/other_user}", + "gists_url": "https://api.github.com/users/fallsnow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fallsnow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fallsnow/subscriptions", + "organizations_url": "https://api.github.com/users/fallsnow/orgs", + "repos_url": "https://api.github.com/users/fallsnow/repos", + "events_url": "https://api.github.com/users/fallsnow/events{/privacy}", + "received_events_url": "https://api.github.com/users/fallsnow/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/fallsnow/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/fallsnow/Nand2Tetris", + "forks_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/fallsnow/Nand2Tetris/deployments", + "created_at": "2016-04-11T06:40:59Z", + "updated_at": "2016-04-11T06:45:37Z", + "pushed_at": "2016-06-15T08:02:34Z", + "git_url": "git://github.com/fallsnow/Nand2Tetris.git", + "ssh_url": "git@github.com:fallsnow/Nand2Tetris.git", + "clone_url": "https://github.com/fallsnow/Nand2Tetris.git", + "svn_url": "https://github.com/fallsnow/Nand2Tetris", + "homepage": null, + "size": 588, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 51712960, + "name": "nand2tetris", + "full_name": "dillstead/nand2tetris", + "owner": { + "login": "dillstead", + "id": 8709584, + "avatar_url": "https://avatars.githubusercontent.com/u/8709584?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dillstead", + "html_url": "https://github.com/dillstead", + "followers_url": "https://api.github.com/users/dillstead/followers", + "following_url": "https://api.github.com/users/dillstead/following{/other_user}", + "gists_url": "https://api.github.com/users/dillstead/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dillstead/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dillstead/subscriptions", + "organizations_url": "https://api.github.com/users/dillstead/orgs", + "repos_url": "https://api.github.com/users/dillstead/repos", + "events_url": "https://api.github.com/users/dillstead/events{/privacy}", + "received_events_url": "https://api.github.com/users/dillstead/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dillstead/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dillstead/nand2tetris", + "forks_url": "https://api.github.com/repos/dillstead/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dillstead/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dillstead/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dillstead/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dillstead/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dillstead/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dillstead/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dillstead/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dillstead/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dillstead/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dillstead/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dillstead/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dillstead/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dillstead/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dillstead/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dillstead/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dillstead/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dillstead/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dillstead/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dillstead/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dillstead/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dillstead/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dillstead/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dillstead/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dillstead/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dillstead/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dillstead/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dillstead/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dillstead/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dillstead/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dillstead/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dillstead/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dillstead/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dillstead/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dillstead/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dillstead/nand2tetris/deployments", + "created_at": "2016-02-14T20:54:39Z", + "updated_at": "2016-02-14T20:58:18Z", + "pushed_at": "2016-06-08T11:31:56Z", + "git_url": "git://github.com/dillstead/nand2tetris.git", + "ssh_url": "git@github.com:dillstead/nand2tetris.git", + "clone_url": "https://github.com/dillstead/nand2tetris.git", + "svn_url": "https://github.com/dillstead/nand2tetris", + "homepage": null, + "size": 189, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 60750184, + "name": "nand2tetris", + "full_name": "aaron-osterhage/nand2tetris", + "owner": { + "login": "aaron-osterhage", + "id": 12044589, + "avatar_url": "https://avatars.githubusercontent.com/u/12044589?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/aaron-osterhage", + "html_url": "https://github.com/aaron-osterhage", + "followers_url": "https://api.github.com/users/aaron-osterhage/followers", + "following_url": "https://api.github.com/users/aaron-osterhage/following{/other_user}", + "gists_url": "https://api.github.com/users/aaron-osterhage/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aaron-osterhage/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aaron-osterhage/subscriptions", + "organizations_url": "https://api.github.com/users/aaron-osterhage/orgs", + "repos_url": "https://api.github.com/users/aaron-osterhage/repos", + "events_url": "https://api.github.com/users/aaron-osterhage/events{/privacy}", + "received_events_url": "https://api.github.com/users/aaron-osterhage/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/aaron-osterhage/nand2tetris", + "description": "My implementation of the nand2tetris projects", + "fork": false, + "url": "https://api.github.com/repos/aaron-osterhage/nand2tetris", + "forks_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/aaron-osterhage/nand2tetris/deployments", + "created_at": "2016-06-09T04:39:51Z", + "updated_at": "2016-06-09T04:43:36Z", + "pushed_at": "2016-06-12T03:12:39Z", + "git_url": "git://github.com/aaron-osterhage/nand2tetris.git", + "ssh_url": "git@github.com:aaron-osterhage/nand2tetris.git", + "clone_url": "https://github.com/aaron-osterhage/nand2tetris.git", + "svn_url": "https://github.com/aaron-osterhage/nand2tetris", + "homepage": null, + "size": 627, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 58568924, + "name": "Nand2Tetris", + "full_name": "arashout/Nand2Tetris", + "owner": { + "login": "arashout", + "id": 10860860, + "avatar_url": "https://avatars.githubusercontent.com/u/10860860?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/arashout", + "html_url": "https://github.com/arashout", + "followers_url": "https://api.github.com/users/arashout/followers", + "following_url": "https://api.github.com/users/arashout/following{/other_user}", + "gists_url": "https://api.github.com/users/arashout/gists{/gist_id}", + "starred_url": "https://api.github.com/users/arashout/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/arashout/subscriptions", + "organizations_url": "https://api.github.com/users/arashout/orgs", + "repos_url": "https://api.github.com/users/arashout/repos", + "events_url": "https://api.github.com/users/arashout/events{/privacy}", + "received_events_url": "https://api.github.com/users/arashout/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/arashout/Nand2Tetris", + "description": "First OSSU Course", + "fork": false, + "url": "https://api.github.com/repos/arashout/Nand2Tetris", + "forks_url": "https://api.github.com/repos/arashout/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/arashout/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/arashout/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/arashout/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/arashout/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/arashout/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/arashout/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/arashout/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/arashout/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/arashout/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/arashout/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/arashout/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/arashout/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/arashout/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/arashout/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/arashout/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/arashout/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/arashout/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/arashout/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/arashout/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/arashout/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/arashout/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/arashout/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/arashout/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/arashout/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/arashout/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/arashout/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/arashout/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/arashout/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/arashout/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/arashout/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/arashout/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/arashout/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/arashout/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/arashout/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/arashout/Nand2Tetris/deployments", + "created_at": "2016-05-11T18:07:42Z", + "updated_at": "2016-05-18T20:16:36Z", + "pushed_at": "2016-06-07T23:32:38Z", + "git_url": "git://github.com/arashout/Nand2Tetris.git", + "ssh_url": "git@github.com:arashout/Nand2Tetris.git", + "clone_url": "https://github.com/arashout/Nand2Tetris.git", + "svn_url": "https://github.com/arashout/Nand2Tetris", + "homepage": "", + "size": 559, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 59557080, + "name": "nand2tetris-projects", + "full_name": "yasserhussain1110/nand2tetris-projects", + "owner": { + "login": "yasserhussain1110", + "id": 6983268, + "avatar_url": "https://avatars.githubusercontent.com/u/6983268?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yasserhussain1110", + "html_url": "https://github.com/yasserhussain1110", + "followers_url": "https://api.github.com/users/yasserhussain1110/followers", + "following_url": "https://api.github.com/users/yasserhussain1110/following{/other_user}", + "gists_url": "https://api.github.com/users/yasserhussain1110/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yasserhussain1110/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yasserhussain1110/subscriptions", + "organizations_url": "https://api.github.com/users/yasserhussain1110/orgs", + "repos_url": "https://api.github.com/users/yasserhussain1110/repos", + "events_url": "https://api.github.com/users/yasserhussain1110/events{/privacy}", + "received_events_url": "https://api.github.com/users/yasserhussain1110/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/yasserhussain1110/nand2tetris-projects", + "description": "My solutions for nand2tetris assigments", + "fork": false, + "url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects", + "forks_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/forks", + "keys_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/teams", + "hooks_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/hooks", + "issue_events_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/events", + "assignees_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/tags", + "blobs_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/languages", + "stargazers_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/stargazers", + "contributors_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/contributors", + "subscribers_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/subscribers", + "subscription_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/subscription", + "commits_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/merges", + "archive_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/downloads", + "issues_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/labels{/name}", + "releases_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/yasserhussain1110/nand2tetris-projects/deployments", + "created_at": "2016-05-24T08:56:59Z", + "updated_at": "2016-05-25T11:43:41Z", + "pushed_at": "2016-06-09T08:31:50Z", + "git_url": "git://github.com/yasserhussain1110/nand2tetris-projects.git", + "ssh_url": "git@github.com:yasserhussain1110/nand2tetris-projects.git", + "clone_url": "https://github.com/yasserhussain1110/nand2tetris-projects.git", + "svn_url": "https://github.com/yasserhussain1110/nand2tetris-projects", + "homepage": "", + "size": 542, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 42507292, + "name": "nand2tetris", + "full_name": "lewisdawson15/nand2tetris", + "owner": { + "login": "lewisdawson15", + "id": 12371174, + "avatar_url": "https://avatars.githubusercontent.com/u/12371174?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lewisdawson15", + "html_url": "https://github.com/lewisdawson15", + "followers_url": "https://api.github.com/users/lewisdawson15/followers", + "following_url": "https://api.github.com/users/lewisdawson15/following{/other_user}", + "gists_url": "https://api.github.com/users/lewisdawson15/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lewisdawson15/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewisdawson15/subscriptions", + "organizations_url": "https://api.github.com/users/lewisdawson15/orgs", + "repos_url": "https://api.github.com/users/lewisdawson15/repos", + "events_url": "https://api.github.com/users/lewisdawson15/events{/privacy}", + "received_events_url": "https://api.github.com/users/lewisdawson15/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lewisdawson15/nand2tetris", + "description": "Solutions for nand2tetris projects", + "fork": false, + "url": "https://api.github.com/repos/lewisdawson15/nand2tetris", + "forks_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lewisdawson15/nand2tetris/deployments", + "created_at": "2015-09-15T09:08:48Z", + "updated_at": "2016-02-07T16:10:27Z", + "pushed_at": "2016-06-17T15:41:36Z", + "git_url": "git://github.com/lewisdawson15/nand2tetris.git", + "ssh_url": "git@github.com:lewisdawson15/nand2tetris.git", + "clone_url": "https://github.com/lewisdawson15/nand2tetris.git", + "svn_url": "https://github.com/lewisdawson15/nand2tetris", + "homepage": "", + "size": 221, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 59543377, + "name": "Nand2Tetris", + "full_name": "lineophile/Nand2Tetris", + "owner": { + "login": "lineophile", + "id": 3014813, + "avatar_url": "https://avatars.githubusercontent.com/u/3014813?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lineophile", + "html_url": "https://github.com/lineophile", + "followers_url": "https://api.github.com/users/lineophile/followers", + "following_url": "https://api.github.com/users/lineophile/following{/other_user}", + "gists_url": "https://api.github.com/users/lineophile/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lineophile/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lineophile/subscriptions", + "organizations_url": "https://api.github.com/users/lineophile/orgs", + "repos_url": "https://api.github.com/users/lineophile/repos", + "events_url": "https://api.github.com/users/lineophile/events{/privacy}", + "received_events_url": "https://api.github.com/users/lineophile/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lineophile/Nand2Tetris", + "description": "The Elements of Computing Systems Coursera ", + "fork": false, + "url": "https://api.github.com/repos/lineophile/Nand2Tetris", + "forks_url": "https://api.github.com/repos/lineophile/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/lineophile/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lineophile/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lineophile/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/lineophile/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lineophile/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lineophile/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/lineophile/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lineophile/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lineophile/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/lineophile/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lineophile/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lineophile/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lineophile/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lineophile/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lineophile/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/lineophile/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lineophile/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lineophile/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lineophile/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/lineophile/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lineophile/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lineophile/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lineophile/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lineophile/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lineophile/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lineophile/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/lineophile/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lineophile/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/lineophile/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lineophile/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lineophile/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lineophile/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lineophile/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lineophile/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lineophile/Nand2Tetris/deployments", + "created_at": "2016-05-24T05:33:09Z", + "updated_at": "2016-05-24T05:48:50Z", + "pushed_at": "2016-06-20T01:01:36Z", + "git_url": "git://github.com/lineophile/Nand2Tetris.git", + "ssh_url": "git@github.com:lineophile/Nand2Tetris.git", + "clone_url": "https://github.com/lineophile/Nand2Tetris.git", + "svn_url": "https://github.com/lineophile/Nand2Tetris", + "homepage": null, + "size": 234, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 56090407, + "name": "NAND2Tetris", + "full_name": "barbieauglend/NAND2Tetris", + "owner": { + "login": "barbieauglend", + "id": 10602109, + "avatar_url": "https://avatars.githubusercontent.com/u/10602109?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/barbieauglend", + "html_url": "https://github.com/barbieauglend", + "followers_url": "https://api.github.com/users/barbieauglend/followers", + "following_url": "https://api.github.com/users/barbieauglend/following{/other_user}", + "gists_url": "https://api.github.com/users/barbieauglend/gists{/gist_id}", + "starred_url": "https://api.github.com/users/barbieauglend/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/barbieauglend/subscriptions", + "organizations_url": "https://api.github.com/users/barbieauglend/orgs", + "repos_url": "https://api.github.com/users/barbieauglend/repos", + "events_url": "https://api.github.com/users/barbieauglend/events{/privacy}", + "received_events_url": "https://api.github.com/users/barbieauglend/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/barbieauglend/NAND2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/barbieauglend/NAND2Tetris", + "forks_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/forks", + "keys_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/teams", + "hooks_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/events", + "assignees_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/tags", + "blobs_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/subscription", + "commits_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/merges", + "archive_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/downloads", + "issues_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/barbieauglend/NAND2Tetris/deployments", + "created_at": "2016-04-12T19:06:30Z", + "updated_at": "2016-05-25T17:51:19Z", + "pushed_at": "2016-06-17T20:45:20Z", + "git_url": "git://github.com/barbieauglend/NAND2Tetris.git", + "ssh_url": "git@github.com:barbieauglend/NAND2Tetris.git", + "clone_url": "https://github.com/barbieauglend/NAND2Tetris.git", + "svn_url": "https://github.com/barbieauglend/NAND2Tetris", + "homepage": null, + "size": 1259, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 61655875, + "name": "nand2tetris", + "full_name": "hongtron/nand2tetris", + "owner": { + "login": "hongtron", + "id": 9556797, + "avatar_url": "https://avatars.githubusercontent.com/u/9556797?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hongtron", + "html_url": "https://github.com/hongtron", + "followers_url": "https://api.github.com/users/hongtron/followers", + "following_url": "https://api.github.com/users/hongtron/following{/other_user}", + "gists_url": "https://api.github.com/users/hongtron/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hongtron/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hongtron/subscriptions", + "organizations_url": "https://api.github.com/users/hongtron/orgs", + "repos_url": "https://api.github.com/users/hongtron/repos", + "events_url": "https://api.github.com/users/hongtron/events{/privacy}", + "received_events_url": "https://api.github.com/users/hongtron/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hongtron/nand2tetris", + "description": "My implementation of the Nand2Tetris curriculum.", + "fork": false, + "url": "https://api.github.com/repos/hongtron/nand2tetris", + "forks_url": "https://api.github.com/repos/hongtron/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/hongtron/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hongtron/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hongtron/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/hongtron/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/hongtron/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/hongtron/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/hongtron/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/hongtron/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/hongtron/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/hongtron/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hongtron/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hongtron/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hongtron/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hongtron/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hongtron/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/hongtron/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/hongtron/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/hongtron/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/hongtron/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/hongtron/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hongtron/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hongtron/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hongtron/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hongtron/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/hongtron/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hongtron/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/hongtron/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hongtron/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/hongtron/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/hongtron/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hongtron/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hongtron/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hongtron/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/hongtron/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/hongtron/nand2tetris/deployments", + "created_at": "2016-06-21T18:08:10Z", + "updated_at": "2016-06-21T18:10:28Z", + "pushed_at": "2016-06-21T18:10:25Z", + "git_url": "git://github.com/hongtron/nand2tetris.git", + "ssh_url": "git@github.com:hongtron/nand2tetris.git", + "clone_url": "https://github.com/hongtron/nand2tetris.git", + "svn_url": "https://github.com/hongtron/nand2tetris", + "homepage": null, + "size": 235, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2283902 + }, + { + "id": 10361823, + "name": "nand2tetris", + "full_name": "sammbeller/nand2tetris", + "owner": { + "login": "sammbeller", + "id": 1796064, + "avatar_url": "https://avatars.githubusercontent.com/u/1796064?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sammbeller", + "html_url": "https://github.com/sammbeller", + "followers_url": "https://api.github.com/users/sammbeller/followers", + "following_url": "https://api.github.com/users/sammbeller/following{/other_user}", + "gists_url": "https://api.github.com/users/sammbeller/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sammbeller/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sammbeller/subscriptions", + "organizations_url": "https://api.github.com/users/sammbeller/orgs", + "repos_url": "https://api.github.com/users/sammbeller/repos", + "events_url": "https://api.github.com/users/sammbeller/events{/privacy}", + "received_events_url": "https://api.github.com/users/sammbeller/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sammbeller/nand2tetris", + "description": "Coursework for \"The Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/sammbeller/nand2tetris", + "forks_url": "https://api.github.com/repos/sammbeller/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/sammbeller/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sammbeller/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sammbeller/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/sammbeller/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/sammbeller/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/sammbeller/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/sammbeller/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/sammbeller/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/sammbeller/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/sammbeller/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sammbeller/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sammbeller/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sammbeller/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sammbeller/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sammbeller/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/sammbeller/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/sammbeller/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/sammbeller/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/sammbeller/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/sammbeller/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sammbeller/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sammbeller/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sammbeller/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sammbeller/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/sammbeller/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sammbeller/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/sammbeller/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sammbeller/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/sammbeller/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/sammbeller/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sammbeller/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sammbeller/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sammbeller/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/sammbeller/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/sammbeller/nand2tetris/deployments", + "created_at": "2013-05-29T14:42:56Z", + "updated_at": "2013-10-24T07:43:56Z", + "pushed_at": "2013-05-30T13:27:54Z", + "git_url": "git://github.com/sammbeller/nand2tetris.git", + "ssh_url": "git@github.com:sammbeller/nand2tetris.git", + "clone_url": "https://github.com/sammbeller/nand2tetris.git", + "svn_url": "https://github.com/sammbeller/nand2tetris", + "homepage": null, + "size": 268, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 9231647, + "name": "nand2Tetris", + "full_name": "dworthen/nand2Tetris", + "owner": { + "login": "dworthen", + "id": 624870, + "avatar_url": "https://avatars.githubusercontent.com/u/624870?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dworthen", + "html_url": "https://github.com/dworthen", + "followers_url": "https://api.github.com/users/dworthen/followers", + "following_url": "https://api.github.com/users/dworthen/following{/other_user}", + "gists_url": "https://api.github.com/users/dworthen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dworthen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dworthen/subscriptions", + "organizations_url": "https://api.github.com/users/dworthen/orgs", + "repos_url": "https://api.github.com/users/dworthen/repos", + "events_url": "https://api.github.com/users/dworthen/events{/privacy}", + "received_events_url": "https://api.github.com/users/dworthen/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dworthen/nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dworthen/nand2Tetris", + "forks_url": "https://api.github.com/repos/dworthen/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/dworthen/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dworthen/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dworthen/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/dworthen/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dworthen/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dworthen/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/dworthen/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dworthen/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dworthen/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/dworthen/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dworthen/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dworthen/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dworthen/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dworthen/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dworthen/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/dworthen/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dworthen/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dworthen/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dworthen/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/dworthen/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dworthen/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dworthen/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dworthen/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dworthen/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dworthen/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dworthen/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/dworthen/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dworthen/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/dworthen/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dworthen/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dworthen/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dworthen/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dworthen/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dworthen/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dworthen/nand2Tetris/deployments", + "created_at": "2013-04-05T01:21:31Z", + "updated_at": "2013-09-30T05:30:59Z", + "pushed_at": "2013-04-07T04:18:28Z", + "git_url": "git://github.com/dworthen/nand2Tetris.git", + "ssh_url": "git@github.com:dworthen/nand2Tetris.git", + "clone_url": "https://github.com/dworthen/nand2Tetris.git", + "svn_url": "https://github.com/dworthen/nand2Tetris", + "homepage": null, + "size": 248, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 6196783, + "name": "nand2tetris", + "full_name": "jbaikge/nand2tetris", + "owner": { + "login": "jbaikge", + "id": 523216, + "avatar_url": "https://avatars.githubusercontent.com/u/523216?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jbaikge", + "html_url": "https://github.com/jbaikge", + "followers_url": "https://api.github.com/users/jbaikge/followers", + "following_url": "https://api.github.com/users/jbaikge/following{/other_user}", + "gists_url": "https://api.github.com/users/jbaikge/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jbaikge/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jbaikge/subscriptions", + "organizations_url": "https://api.github.com/users/jbaikge/orgs", + "repos_url": "https://api.github.com/users/jbaikge/repos", + "events_url": "https://api.github.com/users/jbaikge/events{/privacy}", + "received_events_url": "https://api.github.com/users/jbaikge/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jbaikge/nand2tetris", + "description": "nand2tetris course projects - http://nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/jbaikge/nand2tetris", + "forks_url": "https://api.github.com/repos/jbaikge/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jbaikge/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jbaikge/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jbaikge/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jbaikge/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jbaikge/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jbaikge/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jbaikge/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jbaikge/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jbaikge/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jbaikge/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jbaikge/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jbaikge/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jbaikge/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jbaikge/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jbaikge/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jbaikge/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jbaikge/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jbaikge/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jbaikge/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jbaikge/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jbaikge/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jbaikge/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jbaikge/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jbaikge/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jbaikge/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jbaikge/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jbaikge/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jbaikge/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jbaikge/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jbaikge/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jbaikge/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jbaikge/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jbaikge/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jbaikge/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jbaikge/nand2tetris/deployments", + "created_at": "2012-10-12T21:45:05Z", + "updated_at": "2013-11-03T01:17:23Z", + "pushed_at": "2012-10-13T00:32:01Z", + "git_url": "git://github.com/jbaikge/nand2tetris.git", + "ssh_url": "git@github.com:jbaikge/nand2tetris.git", + "clone_url": "https://github.com/jbaikge/nand2tetris.git", + "svn_url": "https://github.com/jbaikge/nand2tetris", + "homepage": null, + "size": 244, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 10962989, + "name": "nand2tetris", + "full_name": "mrampton/nand2tetris", + "owner": { + "login": "mrampton", + "id": 321405, + "avatar_url": "https://avatars.githubusercontent.com/u/321405?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mrampton", + "html_url": "https://github.com/mrampton", + "followers_url": "https://api.github.com/users/mrampton/followers", + "following_url": "https://api.github.com/users/mrampton/following{/other_user}", + "gists_url": "https://api.github.com/users/mrampton/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mrampton/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mrampton/subscriptions", + "organizations_url": "https://api.github.com/users/mrampton/orgs", + "repos_url": "https://api.github.com/users/mrampton/repos", + "events_url": "https://api.github.com/users/mrampton/events{/privacy}", + "received_events_url": "https://api.github.com/users/mrampton/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mrampton/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/mrampton/nand2tetris", + "forks_url": "https://api.github.com/repos/mrampton/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mrampton/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mrampton/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mrampton/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mrampton/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mrampton/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mrampton/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mrampton/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mrampton/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mrampton/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mrampton/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mrampton/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mrampton/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mrampton/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mrampton/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mrampton/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mrampton/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mrampton/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mrampton/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mrampton/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mrampton/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mrampton/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mrampton/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mrampton/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mrampton/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mrampton/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mrampton/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mrampton/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mrampton/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mrampton/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mrampton/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mrampton/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mrampton/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mrampton/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mrampton/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mrampton/nand2tetris/deployments", + "created_at": "2013-06-26T08:45:14Z", + "updated_at": "2015-05-22T13:50:58Z", + "pushed_at": "2015-05-22T13:50:51Z", + "git_url": "git://github.com/mrampton/nand2tetris.git", + "ssh_url": "git@github.com:mrampton/nand2tetris.git", + "clone_url": "https://github.com/mrampton/nand2tetris.git", + "svn_url": "https://github.com/mrampton/nand2tetris", + "homepage": null, + "size": 388, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 8900733, + "name": "nand2tetris", + "full_name": "vfarcy/nand2tetris", + "owner": { + "login": "vfarcy", + "id": 3275024, + "avatar_url": "https://avatars.githubusercontent.com/u/3275024?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vfarcy", + "html_url": "https://github.com/vfarcy", + "followers_url": "https://api.github.com/users/vfarcy/followers", + "following_url": "https://api.github.com/users/vfarcy/following{/other_user}", + "gists_url": "https://api.github.com/users/vfarcy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vfarcy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vfarcy/subscriptions", + "organizations_url": "https://api.github.com/users/vfarcy/orgs", + "repos_url": "https://api.github.com/users/vfarcy/repos", + "events_url": "https://api.github.com/users/vfarcy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vfarcy/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/vfarcy/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/vfarcy/nand2tetris", + "forks_url": "https://api.github.com/repos/vfarcy/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/vfarcy/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vfarcy/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vfarcy/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/vfarcy/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/vfarcy/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/vfarcy/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/vfarcy/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/vfarcy/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/vfarcy/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/vfarcy/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vfarcy/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vfarcy/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vfarcy/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vfarcy/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vfarcy/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/vfarcy/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/vfarcy/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/vfarcy/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/vfarcy/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/vfarcy/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vfarcy/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vfarcy/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vfarcy/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vfarcy/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/vfarcy/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vfarcy/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/vfarcy/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vfarcy/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/vfarcy/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/vfarcy/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vfarcy/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vfarcy/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vfarcy/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/vfarcy/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/vfarcy/nand2tetris/deployments", + "created_at": "2013-03-20T09:38:06Z", + "updated_at": "2014-04-16T06:09:24Z", + "pushed_at": "2012-10-15T13:30:33Z", + "git_url": "git://github.com/vfarcy/nand2tetris.git", + "ssh_url": "git@github.com:vfarcy/nand2tetris.git", + "clone_url": "https://github.com/vfarcy/nand2tetris.git", + "svn_url": "https://github.com/vfarcy/nand2tetris", + "homepage": null, + "size": 76, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 12042090, + "name": "nand2tetris", + "full_name": "arreche/nand2tetris", + "owner": { + "login": "arreche", + "id": 459813, + "avatar_url": "https://avatars.githubusercontent.com/u/459813?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/arreche", + "html_url": "https://github.com/arreche", + "followers_url": "https://api.github.com/users/arreche/followers", + "following_url": "https://api.github.com/users/arreche/following{/other_user}", + "gists_url": "https://api.github.com/users/arreche/gists{/gist_id}", + "starred_url": "https://api.github.com/users/arreche/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/arreche/subscriptions", + "organizations_url": "https://api.github.com/users/arreche/orgs", + "repos_url": "https://api.github.com/users/arreche/repos", + "events_url": "https://api.github.com/users/arreche/events{/privacy}", + "received_events_url": "https://api.github.com/users/arreche/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/arreche/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/arreche/nand2tetris", + "forks_url": "https://api.github.com/repos/arreche/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/arreche/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/arreche/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/arreche/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/arreche/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/arreche/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/arreche/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/arreche/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/arreche/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/arreche/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/arreche/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/arreche/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/arreche/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/arreche/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/arreche/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/arreche/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/arreche/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/arreche/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/arreche/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/arreche/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/arreche/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/arreche/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/arreche/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/arreche/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/arreche/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/arreche/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/arreche/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/arreche/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/arreche/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/arreche/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/arreche/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/arreche/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/arreche/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/arreche/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/arreche/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/arreche/nand2tetris/deployments", + "created_at": "2013-08-11T20:29:04Z", + "updated_at": "2013-11-29T10:50:23Z", + "pushed_at": "2013-08-18T23:07:34Z", + "git_url": "git://github.com/arreche/nand2tetris.git", + "ssh_url": "git@github.com:arreche/nand2tetris.git", + "clone_url": "https://github.com/arreche/nand2tetris.git", + "svn_url": "https://github.com/arreche/nand2tetris", + "homepage": null, + "size": 624, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 16177655, + "name": "nand2tetris", + "full_name": "chadheim/nand2tetris", + "owner": { + "login": "chadheim", + "id": 1457438, + "avatar_url": "https://avatars.githubusercontent.com/u/1457438?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/chadheim", + "html_url": "https://github.com/chadheim", + "followers_url": "https://api.github.com/users/chadheim/followers", + "following_url": "https://api.github.com/users/chadheim/following{/other_user}", + "gists_url": "https://api.github.com/users/chadheim/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chadheim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chadheim/subscriptions", + "organizations_url": "https://api.github.com/users/chadheim/orgs", + "repos_url": "https://api.github.com/users/chadheim/repos", + "events_url": "https://api.github.com/users/chadheim/events{/privacy}", + "received_events_url": "https://api.github.com/users/chadheim/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/chadheim/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/chadheim/nand2tetris", + "forks_url": "https://api.github.com/repos/chadheim/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/chadheim/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/chadheim/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/chadheim/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/chadheim/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/chadheim/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/chadheim/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/chadheim/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/chadheim/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/chadheim/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/chadheim/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/chadheim/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/chadheim/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/chadheim/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/chadheim/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/chadheim/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/chadheim/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/chadheim/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/chadheim/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/chadheim/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/chadheim/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/chadheim/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/chadheim/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/chadheim/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/chadheim/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/chadheim/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/chadheim/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/chadheim/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/chadheim/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/chadheim/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/chadheim/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/chadheim/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/chadheim/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/chadheim/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/chadheim/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/chadheim/nand2tetris/deployments", + "created_at": "2014-01-23T16:15:54Z", + "updated_at": "2014-01-23T21:17:02Z", + "pushed_at": "2014-01-23T21:17:00Z", + "git_url": "git://github.com/chadheim/nand2tetris.git", + "ssh_url": "git@github.com:chadheim/nand2tetris.git", + "clone_url": "https://github.com/chadheim/nand2tetris.git", + "svn_url": "https://github.com/chadheim/nand2tetris", + "homepage": null, + "size": 652, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 13280338, + "name": "nand2tetris", + "full_name": "mariapacana/nand2tetris", + "owner": { + "login": "mariapacana", + "id": 131715, + "avatar_url": "https://avatars.githubusercontent.com/u/131715?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mariapacana", + "html_url": "https://github.com/mariapacana", + "followers_url": "https://api.github.com/users/mariapacana/followers", + "following_url": "https://api.github.com/users/mariapacana/following{/other_user}", + "gists_url": "https://api.github.com/users/mariapacana/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mariapacana/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mariapacana/subscriptions", + "organizations_url": "https://api.github.com/users/mariapacana/orgs", + "repos_url": "https://api.github.com/users/mariapacana/repos", + "events_url": "https://api.github.com/users/mariapacana/events{/privacy}", + "received_events_url": "https://api.github.com/users/mariapacana/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mariapacana/nand2tetris", + "description": "Building a Computer from First Principles", + "fork": false, + "url": "https://api.github.com/repos/mariapacana/nand2tetris", + "forks_url": "https://api.github.com/repos/mariapacana/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/mariapacana/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mariapacana/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mariapacana/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/mariapacana/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/mariapacana/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/mariapacana/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/mariapacana/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/mariapacana/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/mariapacana/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/mariapacana/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mariapacana/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mariapacana/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mariapacana/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mariapacana/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mariapacana/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/mariapacana/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/mariapacana/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/mariapacana/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/mariapacana/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/mariapacana/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mariapacana/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mariapacana/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mariapacana/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mariapacana/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/mariapacana/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mariapacana/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/mariapacana/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mariapacana/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/mariapacana/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/mariapacana/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mariapacana/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mariapacana/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mariapacana/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/mariapacana/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/mariapacana/nand2tetris/deployments", + "created_at": "2013-10-02T19:14:32Z", + "updated_at": "2013-12-02T00:05:31Z", + "pushed_at": "2013-12-02T00:05:27Z", + "git_url": "git://github.com/mariapacana/nand2tetris.git", + "ssh_url": "git@github.com:mariapacana/nand2tetris.git", + "clone_url": "https://github.com/mariapacana/nand2tetris.git", + "svn_url": "https://github.com/mariapacana/nand2tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 232, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 13503888, + "name": "nand2tetris", + "full_name": "karantamhane/nand2tetris", + "owner": { + "login": "karantamhane", + "id": 3483301, + "avatar_url": "https://avatars.githubusercontent.com/u/3483301?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karantamhane", + "html_url": "https://github.com/karantamhane", + "followers_url": "https://api.github.com/users/karantamhane/followers", + "following_url": "https://api.github.com/users/karantamhane/following{/other_user}", + "gists_url": "https://api.github.com/users/karantamhane/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karantamhane/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karantamhane/subscriptions", + "organizations_url": "https://api.github.com/users/karantamhane/orgs", + "repos_url": "https://api.github.com/users/karantamhane/repos", + "events_url": "https://api.github.com/users/karantamhane/events{/privacy}", + "received_events_url": "https://api.github.com/users/karantamhane/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/karantamhane/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/karantamhane/nand2tetris", + "forks_url": "https://api.github.com/repos/karantamhane/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/karantamhane/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/karantamhane/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/karantamhane/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/karantamhane/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/karantamhane/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/karantamhane/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/karantamhane/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/karantamhane/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/karantamhane/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/karantamhane/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/karantamhane/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/karantamhane/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/karantamhane/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/karantamhane/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/karantamhane/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/karantamhane/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/karantamhane/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/karantamhane/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/karantamhane/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/karantamhane/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/karantamhane/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/karantamhane/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/karantamhane/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/karantamhane/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/karantamhane/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/karantamhane/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/karantamhane/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/karantamhane/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/karantamhane/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/karantamhane/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/karantamhane/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/karantamhane/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/karantamhane/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/karantamhane/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/karantamhane/nand2tetris/deployments", + "created_at": "2013-10-11T16:31:20Z", + "updated_at": "2013-10-21T16:23:36Z", + "pushed_at": "2013-10-21T16:23:34Z", + "git_url": "git://github.com/karantamhane/nand2tetris.git", + "ssh_url": "git@github.com:karantamhane/nand2tetris.git", + "clone_url": "https://github.com/karantamhane/nand2tetris.git", + "svn_url": "https://github.com/karantamhane/nand2tetris", + "homepage": null, + "size": 128, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 15856157, + "name": "nand2tetris", + "full_name": "kmanzana/nand2tetris", + "owner": { + "login": "kmanzana", + "id": 2164013, + "avatar_url": "https://avatars.githubusercontent.com/u/2164013?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kmanzana", + "html_url": "https://github.com/kmanzana", + "followers_url": "https://api.github.com/users/kmanzana/followers", + "following_url": "https://api.github.com/users/kmanzana/following{/other_user}", + "gists_url": "https://api.github.com/users/kmanzana/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kmanzana/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kmanzana/subscriptions", + "organizations_url": "https://api.github.com/users/kmanzana/orgs", + "repos_url": "https://api.github.com/users/kmanzana/repos", + "events_url": "https://api.github.com/users/kmanzana/events{/privacy}", + "received_events_url": "https://api.github.com/users/kmanzana/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kmanzana/nand2tetris", + "description": "Elements of Computing Systems Project", + "fork": false, + "url": "https://api.github.com/repos/kmanzana/nand2tetris", + "forks_url": "https://api.github.com/repos/kmanzana/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kmanzana/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kmanzana/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kmanzana/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kmanzana/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kmanzana/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kmanzana/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kmanzana/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kmanzana/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kmanzana/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kmanzana/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kmanzana/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kmanzana/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kmanzana/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kmanzana/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kmanzana/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kmanzana/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kmanzana/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kmanzana/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kmanzana/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kmanzana/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kmanzana/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kmanzana/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kmanzana/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kmanzana/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kmanzana/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kmanzana/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kmanzana/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kmanzana/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kmanzana/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kmanzana/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kmanzana/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kmanzana/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kmanzana/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kmanzana/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kmanzana/nand2tetris/deployments", + "created_at": "2014-01-13T02:42:27Z", + "updated_at": "2014-05-01T22:05:54Z", + "pushed_at": "2014-05-01T22:05:54Z", + "git_url": "git://github.com/kmanzana/nand2tetris.git", + "ssh_url": "git@github.com:kmanzana/nand2tetris.git", + "clone_url": "https://github.com/kmanzana/nand2tetris.git", + "svn_url": "https://github.com/kmanzana/nand2tetris", + "homepage": "", + "size": 1952, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2, + "mirror_url": null, + "open_issues_count": 0, + "forks": 2, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 6552419, + "name": "nand2tetris", + "full_name": "DavidYKay/nand2tetris", + "owner": { + "login": "DavidYKay", + "id": 171287, + "avatar_url": "https://avatars.githubusercontent.com/u/171287?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/DavidYKay", + "html_url": "https://github.com/DavidYKay", + "followers_url": "https://api.github.com/users/DavidYKay/followers", + "following_url": "https://api.github.com/users/DavidYKay/following{/other_user}", + "gists_url": "https://api.github.com/users/DavidYKay/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DavidYKay/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DavidYKay/subscriptions", + "organizations_url": "https://api.github.com/users/DavidYKay/orgs", + "repos_url": "https://api.github.com/users/DavidYKay/repos", + "events_url": "https://api.github.com/users/DavidYKay/events{/privacy}", + "received_events_url": "https://api.github.com/users/DavidYKay/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/DavidYKay/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/DavidYKay/nand2tetris", + "forks_url": "https://api.github.com/repos/DavidYKay/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/DavidYKay/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/DavidYKay/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/DavidYKay/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/DavidYKay/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/DavidYKay/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/DavidYKay/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/DavidYKay/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/DavidYKay/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/DavidYKay/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/DavidYKay/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/DavidYKay/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/DavidYKay/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/DavidYKay/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/DavidYKay/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/DavidYKay/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/DavidYKay/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/DavidYKay/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/DavidYKay/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/DavidYKay/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/DavidYKay/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/DavidYKay/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/DavidYKay/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/DavidYKay/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/DavidYKay/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/DavidYKay/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/DavidYKay/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/DavidYKay/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/DavidYKay/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/DavidYKay/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/DavidYKay/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/DavidYKay/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/DavidYKay/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/DavidYKay/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/DavidYKay/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/DavidYKay/nand2tetris/deployments", + "created_at": "2012-11-05T21:57:03Z", + "updated_at": "2015-04-08T14:31:42Z", + "pushed_at": "2015-04-08T14:31:40Z", + "git_url": "git://github.com/DavidYKay/nand2tetris.git", + "ssh_url": "git@github.com:DavidYKay/nand2tetris.git", + "clone_url": "https://github.com/DavidYKay/nand2tetris.git", + "svn_url": "https://github.com/DavidYKay/nand2tetris", + "homepage": null, + "size": 1796, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 6528236, + "name": "nand2tetris", + "full_name": "rsmorley/nand2tetris", + "owner": { + "login": "rsmorley", + "id": 1933059, + "avatar_url": "https://avatars.githubusercontent.com/u/1933059?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rsmorley", + "html_url": "https://github.com/rsmorley", + "followers_url": "https://api.github.com/users/rsmorley/followers", + "following_url": "https://api.github.com/users/rsmorley/following{/other_user}", + "gists_url": "https://api.github.com/users/rsmorley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rsmorley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rsmorley/subscriptions", + "organizations_url": "https://api.github.com/users/rsmorley/orgs", + "repos_url": "https://api.github.com/users/rsmorley/repos", + "events_url": "https://api.github.com/users/rsmorley/events{/privacy}", + "received_events_url": "https://api.github.com/users/rsmorley/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/rsmorley/nand2tetris", + "description": "Project files for nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/rsmorley/nand2tetris", + "forks_url": "https://api.github.com/repos/rsmorley/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/rsmorley/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/rsmorley/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/rsmorley/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/rsmorley/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/rsmorley/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/rsmorley/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/rsmorley/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/rsmorley/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/rsmorley/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/rsmorley/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/rsmorley/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/rsmorley/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/rsmorley/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/rsmorley/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/rsmorley/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/rsmorley/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/rsmorley/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/rsmorley/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/rsmorley/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/rsmorley/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/rsmorley/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/rsmorley/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/rsmorley/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/rsmorley/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/rsmorley/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/rsmorley/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/rsmorley/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/rsmorley/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/rsmorley/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/rsmorley/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/rsmorley/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/rsmorley/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/rsmorley/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/rsmorley/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/rsmorley/nand2tetris/deployments", + "created_at": "2012-11-04T06:39:22Z", + "updated_at": "2014-03-27T12:01:59Z", + "pushed_at": "2012-11-04T06:54:25Z", + "git_url": "git://github.com/rsmorley/nand2tetris.git", + "ssh_url": "git@github.com:rsmorley/nand2tetris.git", + "clone_url": "https://github.com/rsmorley/nand2tetris.git", + "svn_url": "https://github.com/rsmorley/nand2tetris", + "homepage": null, + "size": 252, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 30739282, + "name": "nand2tetris", + "full_name": "windyita/nand2tetris", + "owner": { + "login": "windyita", + "id": 10409767, + "avatar_url": "https://avatars.githubusercontent.com/u/10409767?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/windyita", + "html_url": "https://github.com/windyita", + "followers_url": "https://api.github.com/users/windyita/followers", + "following_url": "https://api.github.com/users/windyita/following{/other_user}", + "gists_url": "https://api.github.com/users/windyita/gists{/gist_id}", + "starred_url": "https://api.github.com/users/windyita/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/windyita/subscriptions", + "organizations_url": "https://api.github.com/users/windyita/orgs", + "repos_url": "https://api.github.com/users/windyita/repos", + "events_url": "https://api.github.com/users/windyita/events{/privacy}", + "received_events_url": "https://api.github.com/users/windyita/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/windyita/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/windyita/nand2tetris", + "forks_url": "https://api.github.com/repos/windyita/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/windyita/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/windyita/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/windyita/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/windyita/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/windyita/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/windyita/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/windyita/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/windyita/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/windyita/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/windyita/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/windyita/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/windyita/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/windyita/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/windyita/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/windyita/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/windyita/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/windyita/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/windyita/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/windyita/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/windyita/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/windyita/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/windyita/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/windyita/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/windyita/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/windyita/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/windyita/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/windyita/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/windyita/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/windyita/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/windyita/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/windyita/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/windyita/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/windyita/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/windyita/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/windyita/nand2tetris/deployments", + "created_at": "2015-02-13T03:51:02Z", + "updated_at": "2015-02-13T03:52:25Z", + "pushed_at": "2015-02-13T03:52:23Z", + "git_url": "git://github.com/windyita/nand2tetris.git", + "ssh_url": "git@github.com:windyita/nand2tetris.git", + "clone_url": "https://github.com/windyita/nand2tetris.git", + "svn_url": "https://github.com/windyita/nand2tetris", + "homepage": null, + "size": 320, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 30933378, + "name": "nand2tetris", + "full_name": "iistrate/nand2tetris", + "owner": { + "login": "iistrate", + "id": 4121039, + "avatar_url": "https://avatars.githubusercontent.com/u/4121039?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/iistrate", + "html_url": "https://github.com/iistrate", + "followers_url": "https://api.github.com/users/iistrate/followers", + "following_url": "https://api.github.com/users/iistrate/following{/other_user}", + "gists_url": "https://api.github.com/users/iistrate/gists{/gist_id}", + "starred_url": "https://api.github.com/users/iistrate/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/iistrate/subscriptions", + "organizations_url": "https://api.github.com/users/iistrate/orgs", + "repos_url": "https://api.github.com/users/iistrate/repos", + "events_url": "https://api.github.com/users/iistrate/events{/privacy}", + "received_events_url": "https://api.github.com/users/iistrate/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/iistrate/nand2tetris", + "description": "Building a Modern Computer from First Principles [in progress]", + "fork": false, + "url": "https://api.github.com/repos/iistrate/nand2tetris", + "forks_url": "https://api.github.com/repos/iistrate/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/iistrate/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/iistrate/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/iistrate/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/iistrate/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/iistrate/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/iistrate/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/iistrate/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/iistrate/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/iistrate/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/iistrate/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/iistrate/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/iistrate/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/iistrate/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/iistrate/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/iistrate/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/iistrate/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/iistrate/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/iistrate/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/iistrate/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/iistrate/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/iistrate/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/iistrate/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/iistrate/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/iistrate/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/iistrate/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/iistrate/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/iistrate/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/iistrate/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/iistrate/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/iistrate/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/iistrate/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/iistrate/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/iistrate/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/iistrate/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/iistrate/nand2tetris/deployments", + "created_at": "2015-02-17T19:26:09Z", + "updated_at": "2015-04-15T23:21:02Z", + "pushed_at": "2015-04-15T23:21:02Z", + "git_url": "git://github.com/iistrate/nand2tetris.git", + "ssh_url": "git@github.com:iistrate/nand2tetris.git", + "clone_url": "https://github.com/iistrate/nand2tetris.git", + "svn_url": "https://github.com/iistrate/nand2tetris", + "homepage": "", + "size": 744, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 26594228, + "name": "nand2tetris", + "full_name": "GLoganDR/nand2tetris", + "owner": { + "login": "GLoganDR", + "id": 8092923, + "avatar_url": "https://avatars.githubusercontent.com/u/8092923?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/GLoganDR", + "html_url": "https://github.com/GLoganDR", + "followers_url": "https://api.github.com/users/GLoganDR/followers", + "following_url": "https://api.github.com/users/GLoganDR/following{/other_user}", + "gists_url": "https://api.github.com/users/GLoganDR/gists{/gist_id}", + "starred_url": "https://api.github.com/users/GLoganDR/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GLoganDR/subscriptions", + "organizations_url": "https://api.github.com/users/GLoganDR/orgs", + "repos_url": "https://api.github.com/users/GLoganDR/repos", + "events_url": "https://api.github.com/users/GLoganDR/events{/privacy}", + "received_events_url": "https://api.github.com/users/GLoganDR/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/GLoganDR/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/GLoganDR/nand2tetris", + "forks_url": "https://api.github.com/repos/GLoganDR/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/GLoganDR/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/GLoganDR/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/GLoganDR/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/GLoganDR/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/GLoganDR/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/GLoganDR/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/GLoganDR/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/GLoganDR/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/GLoganDR/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/GLoganDR/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/GLoganDR/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/GLoganDR/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/GLoganDR/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/GLoganDR/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/GLoganDR/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/GLoganDR/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/GLoganDR/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/GLoganDR/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/GLoganDR/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/GLoganDR/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/GLoganDR/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/GLoganDR/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/GLoganDR/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/GLoganDR/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/GLoganDR/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/GLoganDR/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/GLoganDR/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/GLoganDR/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/GLoganDR/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/GLoganDR/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/GLoganDR/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/GLoganDR/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/GLoganDR/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/GLoganDR/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/GLoganDR/nand2tetris/deployments", + "created_at": "2014-11-13T15:30:58Z", + "updated_at": "2014-11-13T15:32:04Z", + "pushed_at": "2014-11-13T15:32:04Z", + "git_url": "git://github.com/GLoganDR/nand2tetris.git", + "ssh_url": "git@github.com:GLoganDR/nand2tetris.git", + "clone_url": "https://github.com/GLoganDR/nand2tetris.git", + "svn_url": "https://github.com/GLoganDR/nand2tetris", + "homepage": null, + "size": 608, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 26066042, + "name": "nand2tetris", + "full_name": "bentrevor/nand2tetris", + "owner": { + "login": "bentrevor", + "id": 1909629, + "avatar_url": "https://avatars.githubusercontent.com/u/1909629?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bentrevor", + "html_url": "https://github.com/bentrevor", + "followers_url": "https://api.github.com/users/bentrevor/followers", + "following_url": "https://api.github.com/users/bentrevor/following{/other_user}", + "gists_url": "https://api.github.com/users/bentrevor/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bentrevor/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bentrevor/subscriptions", + "organizations_url": "https://api.github.com/users/bentrevor/orgs", + "repos_url": "https://api.github.com/users/bentrevor/repos", + "events_url": "https://api.github.com/users/bentrevor/events{/privacy}", + "received_events_url": "https://api.github.com/users/bentrevor/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bentrevor/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/bentrevor/nand2tetris", + "forks_url": "https://api.github.com/repos/bentrevor/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/bentrevor/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bentrevor/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bentrevor/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/bentrevor/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/bentrevor/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/bentrevor/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/bentrevor/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/bentrevor/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/bentrevor/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/bentrevor/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bentrevor/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bentrevor/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bentrevor/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bentrevor/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bentrevor/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/bentrevor/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/bentrevor/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/bentrevor/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/bentrevor/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/bentrevor/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bentrevor/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bentrevor/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bentrevor/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bentrevor/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/bentrevor/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bentrevor/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/bentrevor/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bentrevor/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/bentrevor/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/bentrevor/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bentrevor/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bentrevor/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bentrevor/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/bentrevor/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/bentrevor/nand2tetris/deployments", + "created_at": "2014-11-01T23:13:49Z", + "updated_at": "2014-11-01T23:14:12Z", + "pushed_at": "2014-11-12T04:31:34Z", + "git_url": "git://github.com/bentrevor/nand2tetris.git", + "ssh_url": "git@github.com:bentrevor/nand2tetris.git", + "clone_url": "https://github.com/bentrevor/nand2tetris.git", + "svn_url": "https://github.com/bentrevor/nand2tetris", + "homepage": null, + "size": 340, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 26146797, + "name": "nand2tetris", + "full_name": "Ryman/nand2tetris", + "owner": { + "login": "Ryman", + "id": 994978, + "avatar_url": "https://avatars.githubusercontent.com/u/994978?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Ryman", + "html_url": "https://github.com/Ryman", + "followers_url": "https://api.github.com/users/Ryman/followers", + "following_url": "https://api.github.com/users/Ryman/following{/other_user}", + "gists_url": "https://api.github.com/users/Ryman/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ryman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ryman/subscriptions", + "organizations_url": "https://api.github.com/users/Ryman/orgs", + "repos_url": "https://api.github.com/users/Ryman/repos", + "events_url": "https://api.github.com/users/Ryman/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ryman/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Ryman/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Ryman/nand2tetris", + "forks_url": "https://api.github.com/repos/Ryman/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Ryman/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Ryman/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Ryman/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Ryman/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Ryman/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Ryman/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Ryman/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Ryman/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Ryman/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Ryman/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Ryman/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Ryman/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Ryman/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Ryman/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Ryman/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Ryman/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Ryman/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Ryman/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Ryman/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Ryman/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Ryman/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Ryman/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Ryman/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Ryman/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Ryman/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Ryman/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Ryman/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Ryman/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Ryman/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Ryman/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Ryman/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Ryman/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Ryman/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Ryman/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Ryman/nand2tetris/deployments", + "created_at": "2014-11-04T01:15:32Z", + "updated_at": "2014-11-04T01:15:53Z", + "pushed_at": "2014-11-04T01:15:53Z", + "git_url": "git://github.com/Ryman/nand2tetris.git", + "ssh_url": "git@github.com:Ryman/nand2tetris.git", + "clone_url": "https://github.com/Ryman/nand2tetris.git", + "svn_url": "https://github.com/Ryman/nand2tetris", + "homepage": null, + "size": 268, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + }, + { + "id": 31803544, + "name": "nand2tetris", + "full_name": "safareli/nand2tetris", + "owner": { + "login": "safareli", + "id": 1932383, + "avatar_url": "https://avatars.githubusercontent.com/u/1932383?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/safareli", + "html_url": "https://github.com/safareli", + "followers_url": "https://api.github.com/users/safareli/followers", + "following_url": "https://api.github.com/users/safareli/following{/other_user}", + "gists_url": "https://api.github.com/users/safareli/gists{/gist_id}", + "starred_url": "https://api.github.com/users/safareli/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/safareli/subscriptions", + "organizations_url": "https://api.github.com/users/safareli/orgs", + "repos_url": "https://api.github.com/users/safareli/repos", + "events_url": "https://api.github.com/users/safareli/events{/privacy}", + "received_events_url": "https://api.github.com/users/safareli/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/safareli/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/safareli/nand2tetris", + "forks_url": "https://api.github.com/repos/safareli/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/safareli/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/safareli/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/safareli/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/safareli/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/safareli/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/safareli/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/safareli/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/safareli/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/safareli/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/safareli/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/safareli/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/safareli/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/safareli/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/safareli/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/safareli/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/safareli/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/safareli/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/safareli/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/safareli/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/safareli/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/safareli/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/safareli/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/safareli/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/safareli/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/safareli/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/safareli/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/safareli/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/safareli/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/safareli/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/safareli/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/safareli/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/safareli/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/safareli/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/safareli/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/safareli/nand2tetris/deployments", + "created_at": "2015-03-07T06:26:21Z", + "updated_at": "2015-03-13T11:00:35Z", + "pushed_at": "2015-03-13T11:00:34Z", + "git_url": "git://github.com/safareli/nand2tetris.git", + "ssh_url": "git@github.com:safareli/nand2tetris.git", + "clone_url": "https://github.com/safareli/nand2tetris.git", + "svn_url": "https://github.com/safareli/nand2tetris", + "homepage": null, + "size": 284, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.2128117 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:20 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "480945", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "26", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"next\", ; rel=\"last\", ; rel=\"first\", ; rel=\"prev\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "318e55760cf7cdb40e61175a4d36cd32", + "x-github-request-id": "AE1408AB:F652:8339BB2:5769F4B7" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/repositories?q=tetris+language%3Aassembly&sort=stars&order=desc&type=all&per_page=100&page=5&q=tetris+language:assembly&sort=stars&order=desc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 473, + "incomplete_results": false, + "items": [ + { + "id": 22033048, + "name": "nand2tetris", + "full_name": "johannesboyne/nand2tetris", + "owner": { + "login": "johannesboyne", + "id": 623576, + "avatar_url": "https://avatars.githubusercontent.com/u/623576?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/johannesboyne", + "html_url": "https://github.com/johannesboyne", + "followers_url": "https://api.github.com/users/johannesboyne/followers", + "following_url": "https://api.github.com/users/johannesboyne/following{/other_user}", + "gists_url": "https://api.github.com/users/johannesboyne/gists{/gist_id}", + "starred_url": "https://api.github.com/users/johannesboyne/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/johannesboyne/subscriptions", + "organizations_url": "https://api.github.com/users/johannesboyne/orgs", + "repos_url": "https://api.github.com/users/johannesboyne/repos", + "events_url": "https://api.github.com/users/johannesboyne/events{/privacy}", + "received_events_url": "https://api.github.com/users/johannesboyne/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/johannesboyne/nand2tetris", + "description": "Following along with the book The Elements of Computing Systems (aka NAND2Tetris)", + "fork": false, + "url": "https://api.github.com/repos/johannesboyne/nand2tetris", + "forks_url": "https://api.github.com/repos/johannesboyne/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/johannesboyne/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/johannesboyne/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/johannesboyne/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/johannesboyne/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/johannesboyne/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/johannesboyne/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/johannesboyne/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/johannesboyne/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/johannesboyne/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/johannesboyne/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/johannesboyne/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/johannesboyne/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/johannesboyne/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/johannesboyne/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/johannesboyne/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/johannesboyne/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/johannesboyne/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/johannesboyne/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/johannesboyne/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/johannesboyne/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/johannesboyne/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/johannesboyne/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/johannesboyne/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/johannesboyne/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/johannesboyne/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/johannesboyne/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/johannesboyne/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/johannesboyne/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/johannesboyne/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/johannesboyne/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/johannesboyne/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/johannesboyne/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/johannesboyne/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/johannesboyne/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/johannesboyne/nand2tetris/deployments", + "created_at": "2014-07-20T12:49:44Z", + "updated_at": "2014-09-02T12:22:03Z", + "pushed_at": "2013-06-12T23:28:42Z", + "git_url": "git://github.com/johannesboyne/nand2tetris.git", + "ssh_url": "git@github.com:johannesboyne/nand2tetris.git", + "clone_url": "https://github.com/johannesboyne/nand2tetris.git", + "svn_url": "https://github.com/johannesboyne/nand2tetris", + "homepage": null, + "size": 792, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 22325484, + "name": "nand2tetris", + "full_name": "sophiadavis/nand2tetris", + "owner": { + "login": "sophiadavis", + "id": 4664752, + "avatar_url": "https://avatars.githubusercontent.com/u/4664752?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sophiadavis", + "html_url": "https://github.com/sophiadavis", + "followers_url": "https://api.github.com/users/sophiadavis/followers", + "following_url": "https://api.github.com/users/sophiadavis/following{/other_user}", + "gists_url": "https://api.github.com/users/sophiadavis/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sophiadavis/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sophiadavis/subscriptions", + "organizations_url": "https://api.github.com/users/sophiadavis/orgs", + "repos_url": "https://api.github.com/users/sophiadavis/repos", + "events_url": "https://api.github.com/users/sophiadavis/events{/privacy}", + "received_events_url": "https://api.github.com/users/sophiadavis/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/sophiadavis/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/sophiadavis/nand2tetris", + "forks_url": "https://api.github.com/repos/sophiadavis/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/sophiadavis/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sophiadavis/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sophiadavis/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/sophiadavis/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/sophiadavis/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/sophiadavis/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/sophiadavis/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/sophiadavis/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/sophiadavis/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/sophiadavis/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sophiadavis/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sophiadavis/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sophiadavis/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sophiadavis/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sophiadavis/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/sophiadavis/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/sophiadavis/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/sophiadavis/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/sophiadavis/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/sophiadavis/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sophiadavis/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sophiadavis/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sophiadavis/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sophiadavis/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/sophiadavis/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sophiadavis/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/sophiadavis/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sophiadavis/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/sophiadavis/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/sophiadavis/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sophiadavis/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sophiadavis/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sophiadavis/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/sophiadavis/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/sophiadavis/nand2tetris/deployments", + "created_at": "2014-07-27T23:39:12Z", + "updated_at": "2014-09-06T23:58:25Z", + "pushed_at": "2014-09-14T02:04:54Z", + "git_url": "git://github.com/sophiadavis/nand2tetris.git", + "ssh_url": "git@github.com:sophiadavis/nand2tetris.git", + "clone_url": "https://github.com/sophiadavis/nand2tetris.git", + "svn_url": "https://github.com/sophiadavis/nand2tetris", + "homepage": null, + "size": 428, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 22178383, + "name": "nand2tetris", + "full_name": "Sl0vi/nand2tetris", + "owner": { + "login": "Sl0vi", + "id": 2778582, + "avatar_url": "https://avatars.githubusercontent.com/u/2778582?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Sl0vi", + "html_url": "https://github.com/Sl0vi", + "followers_url": "https://api.github.com/users/Sl0vi/followers", + "following_url": "https://api.github.com/users/Sl0vi/following{/other_user}", + "gists_url": "https://api.github.com/users/Sl0vi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Sl0vi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Sl0vi/subscriptions", + "organizations_url": "https://api.github.com/users/Sl0vi/orgs", + "repos_url": "https://api.github.com/users/Sl0vi/repos", + "events_url": "https://api.github.com/users/Sl0vi/events{/privacy}", + "received_events_url": "https://api.github.com/users/Sl0vi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Sl0vi/nand2tetris", + "description": "Working my way through http://www.nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/Sl0vi/nand2tetris", + "forks_url": "https://api.github.com/repos/Sl0vi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Sl0vi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Sl0vi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Sl0vi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Sl0vi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Sl0vi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Sl0vi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Sl0vi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Sl0vi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Sl0vi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Sl0vi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Sl0vi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Sl0vi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Sl0vi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Sl0vi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Sl0vi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Sl0vi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Sl0vi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Sl0vi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Sl0vi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Sl0vi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Sl0vi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Sl0vi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Sl0vi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Sl0vi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Sl0vi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Sl0vi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Sl0vi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Sl0vi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Sl0vi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Sl0vi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Sl0vi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Sl0vi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Sl0vi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Sl0vi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Sl0vi/nand2tetris/deployments", + "created_at": "2014-07-23T21:16:32Z", + "updated_at": "2014-07-24T13:10:09Z", + "pushed_at": "2014-08-31T14:51:06Z", + "git_url": "git://github.com/Sl0vi/nand2tetris.git", + "ssh_url": "git@github.com:Sl0vi/nand2tetris.git", + "clone_url": "https://github.com/Sl0vi/nand2tetris.git", + "svn_url": "https://github.com/Sl0vi/nand2tetris", + "homepage": null, + "size": 680, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 23454237, + "name": "nand2tetris", + "full_name": "charmeleon/nand2tetris", + "owner": { + "login": "charmeleon", + "id": 2086355, + "avatar_url": "https://avatars.githubusercontent.com/u/2086355?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/charmeleon", + "html_url": "https://github.com/charmeleon", + "followers_url": "https://api.github.com/users/charmeleon/followers", + "following_url": "https://api.github.com/users/charmeleon/following{/other_user}", + "gists_url": "https://api.github.com/users/charmeleon/gists{/gist_id}", + "starred_url": "https://api.github.com/users/charmeleon/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/charmeleon/subscriptions", + "organizations_url": "https://api.github.com/users/charmeleon/orgs", + "repos_url": "https://api.github.com/users/charmeleon/repos", + "events_url": "https://api.github.com/users/charmeleon/events{/privacy}", + "received_events_url": "https://api.github.com/users/charmeleon/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/charmeleon/nand2tetris", + "description": "Mini-projects for nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/charmeleon/nand2tetris", + "forks_url": "https://api.github.com/repos/charmeleon/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/charmeleon/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/charmeleon/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/charmeleon/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/charmeleon/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/charmeleon/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/charmeleon/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/charmeleon/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/charmeleon/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/charmeleon/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/charmeleon/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/charmeleon/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/charmeleon/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/charmeleon/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/charmeleon/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/charmeleon/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/charmeleon/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/charmeleon/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/charmeleon/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/charmeleon/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/charmeleon/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/charmeleon/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/charmeleon/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/charmeleon/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/charmeleon/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/charmeleon/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/charmeleon/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/charmeleon/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/charmeleon/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/charmeleon/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/charmeleon/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/charmeleon/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/charmeleon/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/charmeleon/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/charmeleon/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/charmeleon/nand2tetris/deployments", + "created_at": "2014-08-29T06:00:41Z", + "updated_at": "2014-09-02T16:04:36Z", + "pushed_at": "2014-10-04T02:47:14Z", + "git_url": "git://github.com/charmeleon/nand2tetris.git", + "ssh_url": "git@github.com:charmeleon/nand2tetris.git", + "clone_url": "https://github.com/charmeleon/nand2tetris.git", + "svn_url": "https://github.com/charmeleon/nand2tetris", + "homepage": null, + "size": 460, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 24538442, + "name": "nand2tetris", + "full_name": "Andrew-Max/nand2tetris", + "owner": { + "login": "Andrew-Max", + "id": 4232743, + "avatar_url": "https://avatars.githubusercontent.com/u/4232743?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Andrew-Max", + "html_url": "https://github.com/Andrew-Max", + "followers_url": "https://api.github.com/users/Andrew-Max/followers", + "following_url": "https://api.github.com/users/Andrew-Max/following{/other_user}", + "gists_url": "https://api.github.com/users/Andrew-Max/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Andrew-Max/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Andrew-Max/subscriptions", + "organizations_url": "https://api.github.com/users/Andrew-Max/orgs", + "repos_url": "https://api.github.com/users/Andrew-Max/repos", + "events_url": "https://api.github.com/users/Andrew-Max/events{/privacy}", + "received_events_url": "https://api.github.com/users/Andrew-Max/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Andrew-Max/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Andrew-Max/nand2tetris", + "forks_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Andrew-Max/nand2tetris/deployments", + "created_at": "2014-09-27T17:44:52Z", + "updated_at": "2014-09-27T17:51:59Z", + "pushed_at": "2014-11-06T00:54:33Z", + "git_url": "git://github.com/Andrew-Max/nand2tetris.git", + "ssh_url": "git@github.com:Andrew-Max/nand2tetris.git", + "clone_url": "https://github.com/Andrew-Max/nand2tetris.git", + "svn_url": "https://github.com/Andrew-Max/nand2tetris", + "homepage": null, + "size": 692, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 23922822, + "name": "nand2tetris", + "full_name": "vishparshav/nand2tetris", + "owner": { + "login": "vishparshav", + "id": 8737217, + "avatar_url": "https://avatars.githubusercontent.com/u/8737217?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vishparshav", + "html_url": "https://github.com/vishparshav", + "followers_url": "https://api.github.com/users/vishparshav/followers", + "following_url": "https://api.github.com/users/vishparshav/following{/other_user}", + "gists_url": "https://api.github.com/users/vishparshav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vishparshav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vishparshav/subscriptions", + "organizations_url": "https://api.github.com/users/vishparshav/orgs", + "repos_url": "https://api.github.com/users/vishparshav/repos", + "events_url": "https://api.github.com/users/vishparshav/events{/privacy}", + "received_events_url": "https://api.github.com/users/vishparshav/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/vishparshav/nand2tetris", + "description": "Repo for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/vishparshav/nand2tetris", + "forks_url": "https://api.github.com/repos/vishparshav/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/vishparshav/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vishparshav/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vishparshav/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/vishparshav/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/vishparshav/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/vishparshav/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/vishparshav/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/vishparshav/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/vishparshav/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/vishparshav/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vishparshav/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vishparshav/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vishparshav/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vishparshav/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vishparshav/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/vishparshav/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/vishparshav/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/vishparshav/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/vishparshav/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/vishparshav/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vishparshav/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vishparshav/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vishparshav/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vishparshav/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/vishparshav/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vishparshav/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/vishparshav/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vishparshav/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/vishparshav/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/vishparshav/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vishparshav/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vishparshav/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vishparshav/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/vishparshav/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/vishparshav/nand2tetris/deployments", + "created_at": "2014-09-11T14:57:32Z", + "updated_at": "2014-09-11T14:59:36Z", + "pushed_at": "2014-09-11T14:59:35Z", + "git_url": "git://github.com/vishparshav/nand2tetris.git", + "ssh_url": "git@github.com:vishparshav/nand2tetris.git", + "clone_url": "https://github.com/vishparshav/nand2tetris.git", + "svn_url": "https://github.com/vishparshav/nand2tetris", + "homepage": null, + "size": 276, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 24090621, + "name": "nand2tetris", + "full_name": "epai/nand2tetris", + "owner": { + "login": "epai", + "id": 8680381, + "avatar_url": "https://avatars.githubusercontent.com/u/8680381?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/epai", + "html_url": "https://github.com/epai", + "followers_url": "https://api.github.com/users/epai/followers", + "following_url": "https://api.github.com/users/epai/following{/other_user}", + "gists_url": "https://api.github.com/users/epai/gists{/gist_id}", + "starred_url": "https://api.github.com/users/epai/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/epai/subscriptions", + "organizations_url": "https://api.github.com/users/epai/orgs", + "repos_url": "https://api.github.com/users/epai/repos", + "events_url": "https://api.github.com/users/epai/events{/privacy}", + "received_events_url": "https://api.github.com/users/epai/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/epai/nand2tetris", + "description": "Project description here: http://www.nand2tetris.org", + "fork": false, + "url": "https://api.github.com/repos/epai/nand2tetris", + "forks_url": "https://api.github.com/repos/epai/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/epai/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/epai/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/epai/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/epai/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/epai/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/epai/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/epai/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/epai/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/epai/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/epai/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/epai/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/epai/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/epai/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/epai/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/epai/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/epai/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/epai/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/epai/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/epai/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/epai/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/epai/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/epai/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/epai/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/epai/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/epai/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/epai/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/epai/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/epai/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/epai/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/epai/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/epai/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/epai/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/epai/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/epai/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/epai/nand2tetris/deployments", + "created_at": "2014-09-16T07:57:47Z", + "updated_at": "2014-09-16T08:00:26Z", + "pushed_at": "2014-09-16T08:00:25Z", + "git_url": "git://github.com/epai/nand2tetris.git", + "ssh_url": "git@github.com:epai/nand2tetris.git", + "clone_url": "https://github.com/epai/nand2tetris.git", + "svn_url": "https://github.com/epai/nand2tetris", + "homepage": null, + "size": 724, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 18865976, + "name": "nand2tetris", + "full_name": "dandorman/nand2tetris", + "owner": { + "login": "dandorman", + "id": 2452, + "avatar_url": "https://avatars.githubusercontent.com/u/2452?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dandorman", + "html_url": "https://github.com/dandorman", + "followers_url": "https://api.github.com/users/dandorman/followers", + "following_url": "https://api.github.com/users/dandorman/following{/other_user}", + "gists_url": "https://api.github.com/users/dandorman/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dandorman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dandorman/subscriptions", + "organizations_url": "https://api.github.com/users/dandorman/orgs", + "repos_url": "https://api.github.com/users/dandorman/repos", + "events_url": "https://api.github.com/users/dandorman/events{/privacy}", + "received_events_url": "https://api.github.com/users/dandorman/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dandorman/nand2tetris", + "description": "Solutions to the problems in Nand2Tetris.", + "fork": false, + "url": "https://api.github.com/repos/dandorman/nand2tetris", + "forks_url": "https://api.github.com/repos/dandorman/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dandorman/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dandorman/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dandorman/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dandorman/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dandorman/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dandorman/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dandorman/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dandorman/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dandorman/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dandorman/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dandorman/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dandorman/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dandorman/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dandorman/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dandorman/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dandorman/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dandorman/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dandorman/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dandorman/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dandorman/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dandorman/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dandorman/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dandorman/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dandorman/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dandorman/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dandorman/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dandorman/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dandorman/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dandorman/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dandorman/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dandorman/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dandorman/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dandorman/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dandorman/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dandorman/nand2tetris/deployments", + "created_at": "2014-04-17T03:59:09Z", + "updated_at": "2014-05-15T04:07:49Z", + "pushed_at": "2014-05-15T04:07:48Z", + "git_url": "git://github.com/dandorman/nand2tetris.git", + "ssh_url": "git@github.com:dandorman/nand2tetris.git", + "clone_url": "https://github.com/dandorman/nand2tetris.git", + "svn_url": "https://github.com/dandorman/nand2tetris", + "homepage": null, + "size": 348, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 17948919, + "name": "nand2tetris", + "full_name": "omfgroflbbq/nand2tetris", + "owner": { + "login": "omfgroflbbq", + "id": 5622198, + "avatar_url": "https://avatars.githubusercontent.com/u/5622198?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/omfgroflbbq", + "html_url": "https://github.com/omfgroflbbq", + "followers_url": "https://api.github.com/users/omfgroflbbq/followers", + "following_url": "https://api.github.com/users/omfgroflbbq/following{/other_user}", + "gists_url": "https://api.github.com/users/omfgroflbbq/gists{/gist_id}", + "starred_url": "https://api.github.com/users/omfgroflbbq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/omfgroflbbq/subscriptions", + "organizations_url": "https://api.github.com/users/omfgroflbbq/orgs", + "repos_url": "https://api.github.com/users/omfgroflbbq/repos", + "events_url": "https://api.github.com/users/omfgroflbbq/events{/privacy}", + "received_events_url": "https://api.github.com/users/omfgroflbbq/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/omfgroflbbq/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/omfgroflbbq/nand2tetris", + "forks_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/omfgroflbbq/nand2tetris/deployments", + "created_at": "2014-03-20T16:02:20Z", + "updated_at": "2014-03-20T16:03:48Z", + "pushed_at": "2014-03-20T16:03:49Z", + "git_url": "git://github.com/omfgroflbbq/nand2tetris.git", + "ssh_url": "git@github.com:omfgroflbbq/nand2tetris.git", + "clone_url": "https://github.com/omfgroflbbq/nand2tetris.git", + "svn_url": "https://github.com/omfgroflbbq/nand2tetris", + "homepage": null, + "size": 260, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 18185313, + "name": "nand2tetris", + "full_name": "Mr-Ultimate/nand2tetris", + "owner": { + "login": "Mr-Ultimate", + "id": 6710237, + "avatar_url": "https://avatars.githubusercontent.com/u/6710237?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Mr-Ultimate", + "html_url": "https://github.com/Mr-Ultimate", + "followers_url": "https://api.github.com/users/Mr-Ultimate/followers", + "following_url": "https://api.github.com/users/Mr-Ultimate/following{/other_user}", + "gists_url": "https://api.github.com/users/Mr-Ultimate/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mr-Ultimate/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mr-Ultimate/subscriptions", + "organizations_url": "https://api.github.com/users/Mr-Ultimate/orgs", + "repos_url": "https://api.github.com/users/Mr-Ultimate/repos", + "events_url": "https://api.github.com/users/Mr-Ultimate/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mr-Ultimate/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Mr-Ultimate/nand2tetris", + "description": "My work related to building a computer from first principles: http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris", + "forks_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Mr-Ultimate/nand2tetris/deployments", + "created_at": "2014-03-27T17:45:14Z", + "updated_at": "2015-05-17T02:29:44Z", + "pushed_at": "2014-01-31T16:14:48Z", + "git_url": "git://github.com/Mr-Ultimate/nand2tetris.git", + "ssh_url": "git@github.com:Mr-Ultimate/nand2tetris.git", + "clone_url": "https://github.com/Mr-Ultimate/nand2tetris.git", + "svn_url": "https://github.com/Mr-Ultimate/nand2tetris", + "homepage": null, + "size": 856, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "develop", + "score": 3.212811 + }, + { + "id": 20781622, + "name": "nand2tetris", + "full_name": "elicriffield/nand2tetris", + "owner": { + "login": "elicriffield", + "id": 3229810, + "avatar_url": "https://avatars.githubusercontent.com/u/3229810?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/elicriffield", + "html_url": "https://github.com/elicriffield", + "followers_url": "https://api.github.com/users/elicriffield/followers", + "following_url": "https://api.github.com/users/elicriffield/following{/other_user}", + "gists_url": "https://api.github.com/users/elicriffield/gists{/gist_id}", + "starred_url": "https://api.github.com/users/elicriffield/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/elicriffield/subscriptions", + "organizations_url": "https://api.github.com/users/elicriffield/orgs", + "repos_url": "https://api.github.com/users/elicriffield/repos", + "events_url": "https://api.github.com/users/elicriffield/events{/privacy}", + "received_events_url": "https://api.github.com/users/elicriffield/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/elicriffield/nand2tetris", + "description": "Homework from The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/elicriffield/nand2tetris", + "forks_url": "https://api.github.com/repos/elicriffield/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/elicriffield/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/elicriffield/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/elicriffield/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/elicriffield/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/elicriffield/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/elicriffield/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/elicriffield/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/elicriffield/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/elicriffield/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/elicriffield/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/elicriffield/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/elicriffield/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/elicriffield/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/elicriffield/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/elicriffield/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/elicriffield/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/elicriffield/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/elicriffield/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/elicriffield/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/elicriffield/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/elicriffield/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/elicriffield/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/elicriffield/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/elicriffield/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/elicriffield/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/elicriffield/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/elicriffield/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/elicriffield/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/elicriffield/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/elicriffield/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/elicriffield/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/elicriffield/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/elicriffield/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/elicriffield/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/elicriffield/nand2tetris/deployments", + "created_at": "2014-06-12T20:19:15Z", + "updated_at": "2014-06-16T06:16:25Z", + "pushed_at": "2014-06-12T20:19:54Z", + "git_url": "git://github.com/elicriffield/nand2tetris.git", + "ssh_url": "git@github.com:elicriffield/nand2tetris.git", + "clone_url": "https://github.com/elicriffield/nand2tetris.git", + "svn_url": "https://github.com/elicriffield/nand2tetris", + "homepage": null, + "size": 268, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 20911564, + "name": "Nand2tetris", + "full_name": "ak2909/Nand2tetris", + "owner": { + "login": "ak2909", + "id": 6450398, + "avatar_url": "https://avatars.githubusercontent.com/u/6450398?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ak2909", + "html_url": "https://github.com/ak2909", + "followers_url": "https://api.github.com/users/ak2909/followers", + "following_url": "https://api.github.com/users/ak2909/following{/other_user}", + "gists_url": "https://api.github.com/users/ak2909/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ak2909/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ak2909/subscriptions", + "organizations_url": "https://api.github.com/users/ak2909/orgs", + "repos_url": "https://api.github.com/users/ak2909/repos", + "events_url": "https://api.github.com/users/ak2909/events{/privacy}", + "received_events_url": "https://api.github.com/users/ak2909/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ak2909/Nand2tetris", + "description": "Nand2tetris project", + "fork": false, + "url": "https://api.github.com/repos/ak2909/Nand2tetris", + "forks_url": "https://api.github.com/repos/ak2909/Nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ak2909/Nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ak2909/Nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ak2909/Nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ak2909/Nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ak2909/Nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ak2909/Nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ak2909/Nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ak2909/Nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ak2909/Nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ak2909/Nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ak2909/Nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ak2909/Nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ak2909/Nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ak2909/Nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ak2909/Nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ak2909/Nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ak2909/Nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ak2909/Nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ak2909/Nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ak2909/Nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ak2909/Nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ak2909/Nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ak2909/Nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ak2909/Nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ak2909/Nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ak2909/Nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ak2909/Nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ak2909/Nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ak2909/Nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ak2909/Nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ak2909/Nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ak2909/Nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ak2909/Nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ak2909/Nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ak2909/Nand2tetris/deployments", + "created_at": "2014-06-17T05:37:07Z", + "updated_at": "2014-06-17T05:47:09Z", + "pushed_at": "2014-06-17T05:47:04Z", + "git_url": "git://github.com/ak2909/Nand2tetris.git", + "ssh_url": "git@github.com:ak2909/Nand2tetris.git", + "clone_url": "https://github.com/ak2909/Nand2tetris.git", + "svn_url": "https://github.com/ak2909/Nand2tetris", + "homepage": null, + "size": 360, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 26082835, + "name": "nand2tetris", + "full_name": "floehopper/nand2tetris", + "owner": { + "login": "floehopper", + "id": 3169, + "avatar_url": "https://avatars.githubusercontent.com/u/3169?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/floehopper", + "html_url": "https://github.com/floehopper", + "followers_url": "https://api.github.com/users/floehopper/followers", + "following_url": "https://api.github.com/users/floehopper/following{/other_user}", + "gists_url": "https://api.github.com/users/floehopper/gists{/gist_id}", + "starred_url": "https://api.github.com/users/floehopper/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/floehopper/subscriptions", + "organizations_url": "https://api.github.com/users/floehopper/orgs", + "repos_url": "https://api.github.com/users/floehopper/repos", + "events_url": "https://api.github.com/users/floehopper/events{/privacy}", + "received_events_url": "https://api.github.com/users/floehopper/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/floehopper/nand2tetris", + "description": "Projects from The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/floehopper/nand2tetris", + "forks_url": "https://api.github.com/repos/floehopper/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/floehopper/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/floehopper/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/floehopper/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/floehopper/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/floehopper/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/floehopper/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/floehopper/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/floehopper/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/floehopper/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/floehopper/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/floehopper/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/floehopper/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/floehopper/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/floehopper/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/floehopper/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/floehopper/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/floehopper/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/floehopper/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/floehopper/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/floehopper/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/floehopper/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/floehopper/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/floehopper/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/floehopper/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/floehopper/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/floehopper/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/floehopper/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/floehopper/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/floehopper/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/floehopper/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/floehopper/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/floehopper/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/floehopper/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/floehopper/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/floehopper/nand2tetris/deployments", + "created_at": "2014-11-02T14:35:00Z", + "updated_at": "2014-12-22T01:29:42Z", + "pushed_at": "2014-12-22T01:29:42Z", + "git_url": "git://github.com/floehopper/nand2tetris.git", + "ssh_url": "git@github.com:floehopper/nand2tetris.git", + "clone_url": "https://github.com/floehopper/nand2tetris.git", + "svn_url": "https://github.com/floehopper/nand2tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 356, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 31913829, + "name": "nand2tetris", + "full_name": "oschreib/nand2tetris", + "owner": { + "login": "oschreib", + "id": 7105897, + "avatar_url": "https://avatars.githubusercontent.com/u/7105897?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/oschreib", + "html_url": "https://github.com/oschreib", + "followers_url": "https://api.github.com/users/oschreib/followers", + "following_url": "https://api.github.com/users/oschreib/following{/other_user}", + "gists_url": "https://api.github.com/users/oschreib/gists{/gist_id}", + "starred_url": "https://api.github.com/users/oschreib/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oschreib/subscriptions", + "organizations_url": "https://api.github.com/users/oschreib/orgs", + "repos_url": "https://api.github.com/users/oschreib/repos", + "events_url": "https://api.github.com/users/oschreib/events{/privacy}", + "received_events_url": "https://api.github.com/users/oschreib/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/oschreib/nand2tetris", + "description": "Nand2Tetris course", + "fork": false, + "url": "https://api.github.com/repos/oschreib/nand2tetris", + "forks_url": "https://api.github.com/repos/oschreib/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/oschreib/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/oschreib/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/oschreib/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/oschreib/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/oschreib/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/oschreib/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/oschreib/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/oschreib/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/oschreib/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/oschreib/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/oschreib/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/oschreib/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/oschreib/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/oschreib/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/oschreib/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/oschreib/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/oschreib/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/oschreib/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/oschreib/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/oschreib/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/oschreib/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/oschreib/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/oschreib/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/oschreib/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/oschreib/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/oschreib/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/oschreib/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/oschreib/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/oschreib/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/oschreib/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/oschreib/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/oschreib/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/oschreib/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/oschreib/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/oschreib/nand2tetris/deployments", + "created_at": "2015-03-09T17:55:52Z", + "updated_at": "2015-05-06T20:42:57Z", + "pushed_at": "2015-06-09T06:59:39Z", + "git_url": "git://github.com/oschreib/nand2tetris.git", + "ssh_url": "git@github.com:oschreib/nand2tetris.git", + "clone_url": "https://github.com/oschreib/nand2tetris.git", + "svn_url": "https://github.com/oschreib/nand2tetris", + "homepage": null, + "size": 1452, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 38599312, + "name": "nand2tetris", + "full_name": "MattTriano/nand2tetris", + "owner": { + "login": "MattTriano", + "id": 3400383, + "avatar_url": "https://avatars.githubusercontent.com/u/3400383?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MattTriano", + "html_url": "https://github.com/MattTriano", + "followers_url": "https://api.github.com/users/MattTriano/followers", + "following_url": "https://api.github.com/users/MattTriano/following{/other_user}", + "gists_url": "https://api.github.com/users/MattTriano/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MattTriano/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MattTriano/subscriptions", + "organizations_url": "https://api.github.com/users/MattTriano/orgs", + "repos_url": "https://api.github.com/users/MattTriano/repos", + "events_url": "https://api.github.com/users/MattTriano/events{/privacy}", + "received_events_url": "https://api.github.com/users/MattTriano/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MattTriano/nand2tetris", + "description": "Work for the elements of computing book and the coursera course Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/MattTriano/nand2tetris", + "forks_url": "https://api.github.com/repos/MattTriano/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/MattTriano/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MattTriano/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MattTriano/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/MattTriano/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/MattTriano/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/MattTriano/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/MattTriano/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/MattTriano/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/MattTriano/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/MattTriano/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MattTriano/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MattTriano/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MattTriano/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MattTriano/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MattTriano/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/MattTriano/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/MattTriano/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/MattTriano/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/MattTriano/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/MattTriano/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MattTriano/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MattTriano/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MattTriano/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MattTriano/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/MattTriano/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MattTriano/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/MattTriano/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MattTriano/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/MattTriano/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/MattTriano/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MattTriano/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MattTriano/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MattTriano/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/MattTriano/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/MattTriano/nand2tetris/deployments", + "created_at": "2015-07-06T05:31:56Z", + "updated_at": "2015-07-06T05:43:13Z", + "pushed_at": "2015-07-17T13:42:06Z", + "git_url": "git://github.com/MattTriano/nand2tetris.git", + "ssh_url": "git@github.com:MattTriano/nand2tetris.git", + "clone_url": "https://github.com/MattTriano/nand2tetris.git", + "svn_url": "https://github.com/MattTriano/nand2tetris", + "homepage": null, + "size": 640, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 39269940, + "name": "nand2tetris-projects", + "full_name": "bauto17/nand2tetris-projects", + "owner": { + "login": "bauto17", + "id": 8044785, + "avatar_url": "https://avatars.githubusercontent.com/u/8044785?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bauto17", + "html_url": "https://github.com/bauto17", + "followers_url": "https://api.github.com/users/bauto17/followers", + "following_url": "https://api.github.com/users/bauto17/following{/other_user}", + "gists_url": "https://api.github.com/users/bauto17/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bauto17/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bauto17/subscriptions", + "organizations_url": "https://api.github.com/users/bauto17/orgs", + "repos_url": "https://api.github.com/users/bauto17/repos", + "events_url": "https://api.github.com/users/bauto17/events{/privacy}", + "received_events_url": "https://api.github.com/users/bauto17/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/bauto17/nand2tetris-projects", + "description": "curso de nand2teris", + "fork": false, + "url": "https://api.github.com/repos/bauto17/nand2tetris-projects", + "forks_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/forks", + "keys_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/teams", + "hooks_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/hooks", + "issue_events_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/events", + "assignees_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/tags", + "blobs_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/languages", + "stargazers_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/stargazers", + "contributors_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/contributors", + "subscribers_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/subscribers", + "subscription_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/subscription", + "commits_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/merges", + "archive_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/downloads", + "issues_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/labels{/name}", + "releases_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/bauto17/nand2tetris-projects/deployments", + "created_at": "2015-07-17T18:44:20Z", + "updated_at": "2015-07-17T18:44:35Z", + "pushed_at": "2015-07-21T09:40:06Z", + "git_url": "git://github.com/bauto17/nand2tetris-projects.git", + "ssh_url": "git@github.com:bauto17/nand2tetris-projects.git", + "clone_url": "https://github.com/bauto17/nand2tetris-projects.git", + "svn_url": "https://github.com/bauto17/nand2tetris-projects", + "homepage": null, + "size": 288, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 32873641, + "name": "nand2tetris", + "full_name": "oliverstaccato/nand2tetris", + "owner": { + "login": "oliverstaccato", + "id": 11650228, + "avatar_url": "https://avatars.githubusercontent.com/u/11650228?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/oliverstaccato", + "html_url": "https://github.com/oliverstaccato", + "followers_url": "https://api.github.com/users/oliverstaccato/followers", + "following_url": "https://api.github.com/users/oliverstaccato/following{/other_user}", + "gists_url": "https://api.github.com/users/oliverstaccato/gists{/gist_id}", + "starred_url": "https://api.github.com/users/oliverstaccato/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oliverstaccato/subscriptions", + "organizations_url": "https://api.github.com/users/oliverstaccato/orgs", + "repos_url": "https://api.github.com/users/oliverstaccato/repos", + "events_url": "https://api.github.com/users/oliverstaccato/events{/privacy}", + "received_events_url": "https://api.github.com/users/oliverstaccato/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/oliverstaccato/nand2tetris", + "description": "Automatically exported from code.google.com/p/nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/oliverstaccato/nand2tetris", + "forks_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/oliverstaccato/nand2tetris/deployments", + "created_at": "2015-03-25T15:33:10Z", + "updated_at": "2015-03-25T15:34:23Z", + "pushed_at": "2015-03-25T15:36:18Z", + "git_url": "git://github.com/oliverstaccato/nand2tetris.git", + "ssh_url": "git@github.com:oliverstaccato/nand2tetris.git", + "clone_url": "https://github.com/oliverstaccato/nand2tetris.git", + "svn_url": "https://github.com/oliverstaccato/nand2tetris", + "homepage": null, + "size": 148, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 40811835, + "name": "nand2tetris", + "full_name": "encse/nand2tetris", + "owner": { + "login": "encse", + "id": 6275775, + "avatar_url": "https://avatars.githubusercontent.com/u/6275775?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/encse", + "html_url": "https://github.com/encse", + "followers_url": "https://api.github.com/users/encse/followers", + "following_url": "https://api.github.com/users/encse/following{/other_user}", + "gists_url": "https://api.github.com/users/encse/gists{/gist_id}", + "starred_url": "https://api.github.com/users/encse/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/encse/subscriptions", + "organizations_url": "https://api.github.com/users/encse/orgs", + "repos_url": "https://api.github.com/users/encse/repos", + "events_url": "https://api.github.com/users/encse/events{/privacy}", + "received_events_url": "https://api.github.com/users/encse/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/encse/nand2tetris", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/encse/nand2tetris", + "forks_url": "https://api.github.com/repos/encse/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/encse/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/encse/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/encse/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/encse/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/encse/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/encse/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/encse/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/encse/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/encse/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/encse/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/encse/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/encse/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/encse/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/encse/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/encse/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/encse/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/encse/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/encse/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/encse/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/encse/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/encse/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/encse/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/encse/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/encse/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/encse/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/encse/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/encse/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/encse/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/encse/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/encse/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/encse/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/encse/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/encse/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/encse/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/encse/nand2tetris/deployments", + "created_at": "2015-08-16T10:59:46Z", + "updated_at": "2015-08-16T10:59:51Z", + "pushed_at": "2015-08-16T10:59:49Z", + "git_url": "git://github.com/encse/nand2tetris.git", + "ssh_url": "git@github.com:encse/nand2tetris.git", + "clone_url": "https://github.com/encse/nand2tetris.git", + "svn_url": "https://github.com/encse/nand2tetris", + "homepage": null, + "size": 1068, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 38190340, + "name": "nand2tetris", + "full_name": "wanganjun/nand2tetris", + "owner": { + "login": "wanganjun", + "id": 7713237, + "avatar_url": "https://avatars.githubusercontent.com/u/7713237?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/wanganjun", + "html_url": "https://github.com/wanganjun", + "followers_url": "https://api.github.com/users/wanganjun/followers", + "following_url": "https://api.github.com/users/wanganjun/following{/other_user}", + "gists_url": "https://api.github.com/users/wanganjun/gists{/gist_id}", + "starred_url": "https://api.github.com/users/wanganjun/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wanganjun/subscriptions", + "organizations_url": "https://api.github.com/users/wanganjun/orgs", + "repos_url": "https://api.github.com/users/wanganjun/repos", + "events_url": "https://api.github.com/users/wanganjun/events{/privacy}", + "received_events_url": "https://api.github.com/users/wanganjun/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/wanganjun/nand2tetris", + "description": "The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/wanganjun/nand2tetris", + "forks_url": "https://api.github.com/repos/wanganjun/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/wanganjun/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/wanganjun/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/wanganjun/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/wanganjun/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/wanganjun/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/wanganjun/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/wanganjun/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/wanganjun/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/wanganjun/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/wanganjun/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/wanganjun/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/wanganjun/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/wanganjun/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/wanganjun/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/wanganjun/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/wanganjun/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/wanganjun/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/wanganjun/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/wanganjun/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/wanganjun/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/wanganjun/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/wanganjun/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/wanganjun/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/wanganjun/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/wanganjun/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/wanganjun/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/wanganjun/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/wanganjun/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/wanganjun/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/wanganjun/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/wanganjun/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/wanganjun/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/wanganjun/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/wanganjun/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/wanganjun/nand2tetris/deployments", + "created_at": "2015-06-28T07:24:35Z", + "updated_at": "2015-06-28T08:09:28Z", + "pushed_at": "2015-07-14T14:39:05Z", + "git_url": "git://github.com/wanganjun/nand2tetris.git", + "ssh_url": "git@github.com:wanganjun/nand2tetris.git", + "clone_url": "https://github.com/wanganjun/nand2tetris.git", + "svn_url": "https://github.com/wanganjun/nand2tetris", + "homepage": null, + "size": 2508, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 33705143, + "name": "nand2tetris", + "full_name": "Lanzafame/nand2tetris", + "owner": { + "login": "Lanzafame", + "id": 5924712, + "avatar_url": "https://avatars.githubusercontent.com/u/5924712?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Lanzafame", + "html_url": "https://github.com/Lanzafame", + "followers_url": "https://api.github.com/users/Lanzafame/followers", + "following_url": "https://api.github.com/users/Lanzafame/following{/other_user}", + "gists_url": "https://api.github.com/users/Lanzafame/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Lanzafame/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Lanzafame/subscriptions", + "organizations_url": "https://api.github.com/users/Lanzafame/orgs", + "repos_url": "https://api.github.com/users/Lanzafame/repos", + "events_url": "https://api.github.com/users/Lanzafame/events{/privacy}", + "received_events_url": "https://api.github.com/users/Lanzafame/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Lanzafame/nand2tetris", + "description": "My attempt at the [Nand2Tetris](http://www.nand2tetris.org/) Course.", + "fork": false, + "url": "https://api.github.com/repos/Lanzafame/nand2tetris", + "forks_url": "https://api.github.com/repos/Lanzafame/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Lanzafame/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Lanzafame/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Lanzafame/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Lanzafame/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Lanzafame/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Lanzafame/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Lanzafame/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Lanzafame/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Lanzafame/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Lanzafame/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Lanzafame/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Lanzafame/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Lanzafame/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Lanzafame/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Lanzafame/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Lanzafame/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Lanzafame/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Lanzafame/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Lanzafame/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Lanzafame/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Lanzafame/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Lanzafame/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Lanzafame/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Lanzafame/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Lanzafame/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Lanzafame/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Lanzafame/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Lanzafame/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Lanzafame/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Lanzafame/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Lanzafame/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Lanzafame/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Lanzafame/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Lanzafame/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Lanzafame/nand2tetris/deployments", + "created_at": "2015-04-10T02:57:34Z", + "updated_at": "2015-04-13T13:46:03Z", + "pushed_at": "2015-04-13T13:46:03Z", + "git_url": "git://github.com/Lanzafame/nand2tetris.git", + "ssh_url": "git@github.com:Lanzafame/nand2tetris.git", + "clone_url": "https://github.com/Lanzafame/nand2tetris.git", + "svn_url": "https://github.com/Lanzafame/nand2tetris", + "homepage": null, + "size": 280, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 35322027, + "name": "nand2tetris", + "full_name": "IanDominey/nand2tetris", + "owner": { + "login": "IanDominey", + "id": 4990954, + "avatar_url": "https://avatars.githubusercontent.com/u/4990954?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/IanDominey", + "html_url": "https://github.com/IanDominey", + "followers_url": "https://api.github.com/users/IanDominey/followers", + "following_url": "https://api.github.com/users/IanDominey/following{/other_user}", + "gists_url": "https://api.github.com/users/IanDominey/gists{/gist_id}", + "starred_url": "https://api.github.com/users/IanDominey/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/IanDominey/subscriptions", + "organizations_url": "https://api.github.com/users/IanDominey/orgs", + "repos_url": "https://api.github.com/users/IanDominey/repos", + "events_url": "https://api.github.com/users/IanDominey/events{/privacy}", + "received_events_url": "https://api.github.com/users/IanDominey/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/IanDominey/nand2tetris", + "description": "Exercises from the Fundamentals of Computer Science", + "fork": false, + "url": "https://api.github.com/repos/IanDominey/nand2tetris", + "forks_url": "https://api.github.com/repos/IanDominey/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/IanDominey/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/IanDominey/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/IanDominey/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/IanDominey/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/IanDominey/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/IanDominey/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/IanDominey/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/IanDominey/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/IanDominey/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/IanDominey/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/IanDominey/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/IanDominey/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/IanDominey/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/IanDominey/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/IanDominey/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/IanDominey/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/IanDominey/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/IanDominey/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/IanDominey/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/IanDominey/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/IanDominey/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/IanDominey/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/IanDominey/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/IanDominey/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/IanDominey/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/IanDominey/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/IanDominey/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/IanDominey/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/IanDominey/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/IanDominey/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/IanDominey/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/IanDominey/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/IanDominey/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/IanDominey/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/IanDominey/nand2tetris/deployments", + "created_at": "2015-05-09T08:57:27Z", + "updated_at": "2015-05-09T09:17:03Z", + "pushed_at": "2015-05-16T09:22:38Z", + "git_url": "git://github.com/IanDominey/nand2tetris.git", + "ssh_url": "git@github.com:IanDominey/nand2tetris.git", + "clone_url": "https://github.com/IanDominey/nand2tetris.git", + "svn_url": "https://github.com/IanDominey/nand2tetris", + "homepage": null, + "size": 276, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 37713865, + "name": "nand2tetris", + "full_name": "draoullig/nand2tetris", + "owner": { + "login": "draoullig", + "id": 4171814, + "avatar_url": "https://avatars.githubusercontent.com/u/4171814?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/draoullig", + "html_url": "https://github.com/draoullig", + "followers_url": "https://api.github.com/users/draoullig/followers", + "following_url": "https://api.github.com/users/draoullig/following{/other_user}", + "gists_url": "https://api.github.com/users/draoullig/gists{/gist_id}", + "starred_url": "https://api.github.com/users/draoullig/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/draoullig/subscriptions", + "organizations_url": "https://api.github.com/users/draoullig/orgs", + "repos_url": "https://api.github.com/users/draoullig/repos", + "events_url": "https://api.github.com/users/draoullig/events{/privacy}", + "received_events_url": "https://api.github.com/users/draoullig/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/draoullig/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/draoullig/nand2tetris", + "forks_url": "https://api.github.com/repos/draoullig/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/draoullig/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/draoullig/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/draoullig/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/draoullig/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/draoullig/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/draoullig/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/draoullig/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/draoullig/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/draoullig/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/draoullig/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/draoullig/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/draoullig/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/draoullig/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/draoullig/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/draoullig/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/draoullig/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/draoullig/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/draoullig/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/draoullig/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/draoullig/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/draoullig/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/draoullig/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/draoullig/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/draoullig/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/draoullig/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/draoullig/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/draoullig/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/draoullig/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/draoullig/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/draoullig/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/draoullig/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/draoullig/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/draoullig/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/draoullig/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/draoullig/nand2tetris/deployments", + "created_at": "2015-06-19T09:36:51Z", + "updated_at": "2015-06-19T09:41:28Z", + "pushed_at": "2015-06-19T09:41:16Z", + "git_url": "git://github.com/draoullig/nand2tetris.git", + "ssh_url": "git@github.com:draoullig/nand2tetris.git", + "clone_url": "https://github.com/draoullig/nand2tetris.git", + "svn_url": "https://github.com/draoullig/nand2tetris", + "homepage": null, + "size": 672, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 37503747, + "name": "Nand2Tetris", + "full_name": "Past9/Nand2Tetris", + "owner": { + "login": "Past9", + "id": 7954699, + "avatar_url": "https://avatars.githubusercontent.com/u/7954699?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Past9", + "html_url": "https://github.com/Past9", + "followers_url": "https://api.github.com/users/Past9/followers", + "following_url": "https://api.github.com/users/Past9/following{/other_user}", + "gists_url": "https://api.github.com/users/Past9/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Past9/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Past9/subscriptions", + "organizations_url": "https://api.github.com/users/Past9/orgs", + "repos_url": "https://api.github.com/users/Past9/repos", + "events_url": "https://api.github.com/users/Past9/events{/privacy}", + "received_events_url": "https://api.github.com/users/Past9/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Past9/Nand2Tetris", + "description": "Coursework for Nand2Tetris course from http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/Past9/Nand2Tetris", + "forks_url": "https://api.github.com/repos/Past9/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/Past9/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Past9/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Past9/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/Past9/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Past9/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Past9/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/Past9/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Past9/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Past9/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/Past9/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Past9/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Past9/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Past9/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Past9/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Past9/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/Past9/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Past9/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Past9/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Past9/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/Past9/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Past9/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Past9/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Past9/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Past9/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Past9/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Past9/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/Past9/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Past9/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/Past9/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Past9/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Past9/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Past9/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Past9/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Past9/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Past9/Nand2Tetris/deployments", + "created_at": "2015-06-16T02:40:37Z", + "updated_at": "2015-06-16T02:41:36Z", + "pushed_at": "2015-06-17T01:55:22Z", + "git_url": "git://github.com/Past9/Nand2Tetris.git", + "ssh_url": "git@github.com:Past9/Nand2Tetris.git", + "clone_url": "https://github.com/Past9/Nand2Tetris.git", + "svn_url": "https://github.com/Past9/Nand2Tetris", + "homepage": null, + "size": 288, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 34896460, + "name": "nand2tetris", + "full_name": "jimmyok/nand2tetris", + "owner": { + "login": "jimmyok", + "id": 2794358, + "avatar_url": "https://avatars.githubusercontent.com/u/2794358?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jimmyok", + "html_url": "https://github.com/jimmyok", + "followers_url": "https://api.github.com/users/jimmyok/followers", + "following_url": "https://api.github.com/users/jimmyok/following{/other_user}", + "gists_url": "https://api.github.com/users/jimmyok/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jimmyok/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jimmyok/subscriptions", + "organizations_url": "https://api.github.com/users/jimmyok/orgs", + "repos_url": "https://api.github.com/users/jimmyok/repos", + "events_url": "https://api.github.com/users/jimmyok/events{/privacy}", + "received_events_url": "https://api.github.com/users/jimmyok/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jimmyok/nand2tetris", + "description": "Nand2tetris course work", + "fork": false, + "url": "https://api.github.com/repos/jimmyok/nand2tetris", + "forks_url": "https://api.github.com/repos/jimmyok/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/jimmyok/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jimmyok/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jimmyok/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/jimmyok/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/jimmyok/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/jimmyok/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/jimmyok/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/jimmyok/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/jimmyok/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/jimmyok/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jimmyok/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jimmyok/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jimmyok/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jimmyok/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jimmyok/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/jimmyok/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/jimmyok/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/jimmyok/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/jimmyok/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/jimmyok/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jimmyok/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jimmyok/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jimmyok/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jimmyok/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/jimmyok/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jimmyok/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/jimmyok/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jimmyok/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/jimmyok/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/jimmyok/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jimmyok/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jimmyok/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jimmyok/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/jimmyok/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/jimmyok/nand2tetris/deployments", + "created_at": "2015-05-01T09:21:43Z", + "updated_at": "2015-05-06T09:40:06Z", + "pushed_at": "2015-05-06T09:40:05Z", + "git_url": "git://github.com/jimmyok/nand2tetris.git", + "ssh_url": "git@github.com:jimmyok/nand2tetris.git", + "clone_url": "https://github.com/jimmyok/nand2tetris.git", + "svn_url": "https://github.com/jimmyok/nand2tetris", + "homepage": null, + "size": 276, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 35704717, + "name": "nand2tetris", + "full_name": "WalterCM/nand2tetris", + "owner": { + "login": "WalterCM", + "id": 8432202, + "avatar_url": "https://avatars.githubusercontent.com/u/8432202?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/WalterCM", + "html_url": "https://github.com/WalterCM", + "followers_url": "https://api.github.com/users/WalterCM/followers", + "following_url": "https://api.github.com/users/WalterCM/following{/other_user}", + "gists_url": "https://api.github.com/users/WalterCM/gists{/gist_id}", + "starred_url": "https://api.github.com/users/WalterCM/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/WalterCM/subscriptions", + "organizations_url": "https://api.github.com/users/WalterCM/orgs", + "repos_url": "https://api.github.com/users/WalterCM/repos", + "events_url": "https://api.github.com/users/WalterCM/events{/privacy}", + "received_events_url": "https://api.github.com/users/WalterCM/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/WalterCM/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/WalterCM/nand2tetris", + "forks_url": "https://api.github.com/repos/WalterCM/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/WalterCM/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/WalterCM/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/WalterCM/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/WalterCM/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/WalterCM/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/WalterCM/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/WalterCM/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/WalterCM/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/WalterCM/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/WalterCM/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/WalterCM/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/WalterCM/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/WalterCM/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/WalterCM/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/WalterCM/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/WalterCM/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/WalterCM/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/WalterCM/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/WalterCM/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/WalterCM/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/WalterCM/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/WalterCM/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/WalterCM/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/WalterCM/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/WalterCM/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/WalterCM/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/WalterCM/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/WalterCM/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/WalterCM/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/WalterCM/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/WalterCM/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/WalterCM/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/WalterCM/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/WalterCM/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/WalterCM/nand2tetris/deployments", + "created_at": "2015-05-16T01:25:49Z", + "updated_at": "2015-05-16T01:28:29Z", + "pushed_at": "2015-05-16T01:28:21Z", + "git_url": "git://github.com/WalterCM/nand2tetris.git", + "ssh_url": "git@github.com:WalterCM/nand2tetris.git", + "clone_url": "https://github.com/WalterCM/nand2tetris.git", + "svn_url": "https://github.com/WalterCM/nand2tetris", + "homepage": null, + "size": 264, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 36232446, + "name": "nand2tetris", + "full_name": "BATTZION/nand2tetris", + "owner": { + "login": "BATTZION", + "id": 7559361, + "avatar_url": "https://avatars.githubusercontent.com/u/7559361?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/BATTZION", + "html_url": "https://github.com/BATTZION", + "followers_url": "https://api.github.com/users/BATTZION/followers", + "following_url": "https://api.github.com/users/BATTZION/following{/other_user}", + "gists_url": "https://api.github.com/users/BATTZION/gists{/gist_id}", + "starred_url": "https://api.github.com/users/BATTZION/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/BATTZION/subscriptions", + "organizations_url": "https://api.github.com/users/BATTZION/orgs", + "repos_url": "https://api.github.com/users/BATTZION/repos", + "events_url": "https://api.github.com/users/BATTZION/events{/privacy}", + "received_events_url": "https://api.github.com/users/BATTZION/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/BATTZION/nand2tetris", + "description": "nand2tetris project (software)", + "fork": false, + "url": "https://api.github.com/repos/BATTZION/nand2tetris", + "forks_url": "https://api.github.com/repos/BATTZION/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/BATTZION/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/BATTZION/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/BATTZION/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/BATTZION/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/BATTZION/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/BATTZION/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/BATTZION/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/BATTZION/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/BATTZION/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/BATTZION/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/BATTZION/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/BATTZION/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/BATTZION/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/BATTZION/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/BATTZION/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/BATTZION/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/BATTZION/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/BATTZION/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/BATTZION/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/BATTZION/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/BATTZION/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/BATTZION/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/BATTZION/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/BATTZION/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/BATTZION/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/BATTZION/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/BATTZION/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/BATTZION/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/BATTZION/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/BATTZION/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/BATTZION/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/BATTZION/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/BATTZION/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/BATTZION/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/BATTZION/nand2tetris/deployments", + "created_at": "2015-05-25T13:20:15Z", + "updated_at": "2015-07-13T09:58:27Z", + "pushed_at": "2015-07-09T05:09:02Z", + "git_url": "git://github.com/BATTZION/nand2tetris.git", + "ssh_url": "git@github.com:BATTZION/nand2tetris.git", + "clone_url": "https://github.com/BATTZION/nand2tetris.git", + "svn_url": "https://github.com/BATTZION/nand2tetris", + "homepage": null, + "size": 332, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 34109586, + "name": "nand2tetris-1", + "full_name": "natashad/nand2tetris-1", + "owner": { + "login": "natashad", + "id": 1857154, + "avatar_url": "https://avatars.githubusercontent.com/u/1857154?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/natashad", + "html_url": "https://github.com/natashad", + "followers_url": "https://api.github.com/users/natashad/followers", + "following_url": "https://api.github.com/users/natashad/following{/other_user}", + "gists_url": "https://api.github.com/users/natashad/gists{/gist_id}", + "starred_url": "https://api.github.com/users/natashad/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/natashad/subscriptions", + "organizations_url": "https://api.github.com/users/natashad/orgs", + "repos_url": "https://api.github.com/users/natashad/repos", + "events_url": "https://api.github.com/users/natashad/events{/privacy}", + "received_events_url": "https://api.github.com/users/natashad/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/natashad/nand2tetris-1", + "description": "Projects for the nand2tetris course. This involves building a computer from the ground up starting from Boolean algebra and elementary logic gates to building a Central Processing Unit, a memory system, and a hardware platform, leading up to a general-purpose computer. For Reference: http://www.nand2tetris.org/", + "fork": false, + "url": "https://api.github.com/repos/natashad/nand2tetris-1", + "forks_url": "https://api.github.com/repos/natashad/nand2tetris-1/forks", + "keys_url": "https://api.github.com/repos/natashad/nand2tetris-1/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/natashad/nand2tetris-1/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/natashad/nand2tetris-1/teams", + "hooks_url": "https://api.github.com/repos/natashad/nand2tetris-1/hooks", + "issue_events_url": "https://api.github.com/repos/natashad/nand2tetris-1/issues/events{/number}", + "events_url": "https://api.github.com/repos/natashad/nand2tetris-1/events", + "assignees_url": "https://api.github.com/repos/natashad/nand2tetris-1/assignees{/user}", + "branches_url": "https://api.github.com/repos/natashad/nand2tetris-1/branches{/branch}", + "tags_url": "https://api.github.com/repos/natashad/nand2tetris-1/tags", + "blobs_url": "https://api.github.com/repos/natashad/nand2tetris-1/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/natashad/nand2tetris-1/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/natashad/nand2tetris-1/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/natashad/nand2tetris-1/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/natashad/nand2tetris-1/statuses/{sha}", + "languages_url": "https://api.github.com/repos/natashad/nand2tetris-1/languages", + "stargazers_url": "https://api.github.com/repos/natashad/nand2tetris-1/stargazers", + "contributors_url": "https://api.github.com/repos/natashad/nand2tetris-1/contributors", + "subscribers_url": "https://api.github.com/repos/natashad/nand2tetris-1/subscribers", + "subscription_url": "https://api.github.com/repos/natashad/nand2tetris-1/subscription", + "commits_url": "https://api.github.com/repos/natashad/nand2tetris-1/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/natashad/nand2tetris-1/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/natashad/nand2tetris-1/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/natashad/nand2tetris-1/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/natashad/nand2tetris-1/contents/{+path}", + "compare_url": "https://api.github.com/repos/natashad/nand2tetris-1/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/natashad/nand2tetris-1/merges", + "archive_url": "https://api.github.com/repos/natashad/nand2tetris-1/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/natashad/nand2tetris-1/downloads", + "issues_url": "https://api.github.com/repos/natashad/nand2tetris-1/issues{/number}", + "pulls_url": "https://api.github.com/repos/natashad/nand2tetris-1/pulls{/number}", + "milestones_url": "https://api.github.com/repos/natashad/nand2tetris-1/milestones{/number}", + "notifications_url": "https://api.github.com/repos/natashad/nand2tetris-1/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/natashad/nand2tetris-1/labels{/name}", + "releases_url": "https://api.github.com/repos/natashad/nand2tetris-1/releases{/id}", + "deployments_url": "https://api.github.com/repos/natashad/nand2tetris-1/deployments", + "created_at": "2015-04-17T09:59:08Z", + "updated_at": "2015-05-06T05:03:19Z", + "pushed_at": "2015-07-06T10:46:51Z", + "git_url": "git://github.com/natashad/nand2tetris-1.git", + "ssh_url": "git@github.com:natashad/nand2tetris-1.git", + "clone_url": "https://github.com/natashad/nand2tetris-1.git", + "svn_url": "https://github.com/natashad/nand2tetris-1", + "homepage": null, + "size": 2672, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 34587081, + "name": "nand2tetris", + "full_name": "hculpan/nand2tetris", + "owner": { + "login": "hculpan", + "id": 1928798, + "avatar_url": "https://avatars.githubusercontent.com/u/1928798?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hculpan", + "html_url": "https://github.com/hculpan", + "followers_url": "https://api.github.com/users/hculpan/followers", + "following_url": "https://api.github.com/users/hculpan/following{/other_user}", + "gists_url": "https://api.github.com/users/hculpan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hculpan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hculpan/subscriptions", + "organizations_url": "https://api.github.com/users/hculpan/orgs", + "repos_url": "https://api.github.com/users/hculpan/repos", + "events_url": "https://api.github.com/users/hculpan/events{/privacy}", + "received_events_url": "https://api.github.com/users/hculpan/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/hculpan/nand2tetris", + "description": "My work for the nand2tetris course", + "fork": false, + "url": "https://api.github.com/repos/hculpan/nand2tetris", + "forks_url": "https://api.github.com/repos/hculpan/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/hculpan/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/hculpan/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/hculpan/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/hculpan/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/hculpan/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/hculpan/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/hculpan/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/hculpan/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/hculpan/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/hculpan/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/hculpan/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/hculpan/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/hculpan/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/hculpan/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/hculpan/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/hculpan/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/hculpan/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/hculpan/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/hculpan/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/hculpan/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/hculpan/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/hculpan/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/hculpan/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/hculpan/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/hculpan/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/hculpan/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/hculpan/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/hculpan/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/hculpan/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/hculpan/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/hculpan/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/hculpan/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/hculpan/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/hculpan/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/hculpan/nand2tetris/deployments", + "created_at": "2015-04-25T21:33:12Z", + "updated_at": "2015-04-29T02:45:23Z", + "pushed_at": "2015-04-29T02:45:23Z", + "git_url": "git://github.com/hculpan/nand2tetris.git", + "ssh_url": "git@github.com:hculpan/nand2tetris.git", + "clone_url": "https://github.com/hculpan/nand2tetris.git", + "svn_url": "https://github.com/hculpan/nand2tetris", + "homepage": null, + "size": 316, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 35741949, + "name": "nand2tetris", + "full_name": "vingiarrusso/nand2tetris", + "owner": { + "login": "vingiarrusso", + "id": 4361490, + "avatar_url": "https://avatars.githubusercontent.com/u/4361490?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vingiarrusso", + "html_url": "https://github.com/vingiarrusso", + "followers_url": "https://api.github.com/users/vingiarrusso/followers", + "following_url": "https://api.github.com/users/vingiarrusso/following{/other_user}", + "gists_url": "https://api.github.com/users/vingiarrusso/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vingiarrusso/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vingiarrusso/subscriptions", + "organizations_url": "https://api.github.com/users/vingiarrusso/orgs", + "repos_url": "https://api.github.com/users/vingiarrusso/repos", + "events_url": "https://api.github.com/users/vingiarrusso/events{/privacy}", + "received_events_url": "https://api.github.com/users/vingiarrusso/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/vingiarrusso/nand2tetris", + "description": "Repo containing files used in the \"From Nand to Tetris Part 1\" coursera course written by Shimon Schocken, Noam Nisan", + "fork": false, + "url": "https://api.github.com/repos/vingiarrusso/nand2tetris", + "forks_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/vingiarrusso/nand2tetris/deployments", + "created_at": "2015-05-16T22:02:26Z", + "updated_at": "2015-05-16T23:35:07Z", + "pushed_at": "2015-05-19T05:41:13Z", + "git_url": "git://github.com/vingiarrusso/nand2tetris.git", + "ssh_url": "git@github.com:vingiarrusso/nand2tetris.git", + "clone_url": "https://github.com/vingiarrusso/nand2tetris.git", + "svn_url": "https://github.com/vingiarrusso/nand2tetris", + "homepage": "", + "size": 692, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 37161482, + "name": "nand2tetris_Assembler", + "full_name": "dannyrose42/nand2tetris_Assembler", + "owner": { + "login": "dannyrose42", + "id": 5464924, + "avatar_url": "https://avatars.githubusercontent.com/u/5464924?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dannyrose42", + "html_url": "https://github.com/dannyrose42", + "followers_url": "https://api.github.com/users/dannyrose42/followers", + "following_url": "https://api.github.com/users/dannyrose42/following{/other_user}", + "gists_url": "https://api.github.com/users/dannyrose42/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dannyrose42/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dannyrose42/subscriptions", + "organizations_url": "https://api.github.com/users/dannyrose42/orgs", + "repos_url": "https://api.github.com/users/dannyrose42/repos", + "events_url": "https://api.github.com/users/dannyrose42/events{/privacy}", + "received_events_url": "https://api.github.com/users/dannyrose42/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dannyrose42/nand2tetris_Assembler", + "description": "Assembler for the JACK machine written in C++", + "fork": false, + "url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler", + "forks_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/forks", + "keys_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/teams", + "hooks_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/hooks", + "issue_events_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/issues/events{/number}", + "events_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/events", + "assignees_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/assignees{/user}", + "branches_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/branches{/branch}", + "tags_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/tags", + "blobs_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/languages", + "stargazers_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/stargazers", + "contributors_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/contributors", + "subscribers_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/subscribers", + "subscription_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/subscription", + "commits_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/contents/{+path}", + "compare_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/merges", + "archive_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/downloads", + "issues_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/issues{/number}", + "pulls_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/labels{/name}", + "releases_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/releases{/id}", + "deployments_url": "https://api.github.com/repos/dannyrose42/nand2tetris_Assembler/deployments", + "created_at": "2015-06-09T22:12:28Z", + "updated_at": "2015-07-11T04:42:59Z", + "pushed_at": "2015-09-30T01:27:43Z", + "git_url": "git://github.com/dannyrose42/nand2tetris_Assembler.git", + "ssh_url": "git@github.com:dannyrose42/nand2tetris_Assembler.git", + "clone_url": "https://github.com/dannyrose42/nand2tetris_Assembler.git", + "svn_url": "https://github.com/dannyrose42/nand2tetris_Assembler", + "homepage": "", + "size": 920, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 43754999, + "name": "Nand2Tetris", + "full_name": "kmg8746/Nand2Tetris", + "owner": { + "login": "kmg8746", + "id": 10095986, + "avatar_url": "https://avatars.githubusercontent.com/u/10095986?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kmg8746", + "html_url": "https://github.com/kmg8746", + "followers_url": "https://api.github.com/users/kmg8746/followers", + "following_url": "https://api.github.com/users/kmg8746/following{/other_user}", + "gists_url": "https://api.github.com/users/kmg8746/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kmg8746/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kmg8746/subscriptions", + "organizations_url": "https://api.github.com/users/kmg8746/orgs", + "repos_url": "https://api.github.com/users/kmg8746/repos", + "events_url": "https://api.github.com/users/kmg8746/events{/privacy}", + "received_events_url": "https://api.github.com/users/kmg8746/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kmg8746/Nand2Tetris", + "description": "Building a modern computer with Nand2Tetris (Nand2Tetris.org)", + "fork": false, + "url": "https://api.github.com/repos/kmg8746/Nand2Tetris", + "forks_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kmg8746/Nand2Tetris/deployments", + "created_at": "2015-10-06T14:13:24Z", + "updated_at": "2015-10-06T14:49:16Z", + "pushed_at": "2015-10-06T14:55:30Z", + "git_url": "git://github.com/kmg8746/Nand2Tetris.git", + "ssh_url": "git@github.com:kmg8746/Nand2Tetris.git", + "clone_url": "https://github.com/kmg8746/Nand2Tetris.git", + "svn_url": "https://github.com/kmg8746/Nand2Tetris", + "homepage": null, + "size": 176, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 45802485, + "name": "nand2tetris", + "full_name": "Acedio/nand2tetris", + "owner": { + "login": "Acedio", + "id": 79978, + "avatar_url": "https://avatars.githubusercontent.com/u/79978?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Acedio", + "html_url": "https://github.com/Acedio", + "followers_url": "https://api.github.com/users/Acedio/followers", + "following_url": "https://api.github.com/users/Acedio/following{/other_user}", + "gists_url": "https://api.github.com/users/Acedio/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Acedio/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Acedio/subscriptions", + "organizations_url": "https://api.github.com/users/Acedio/orgs", + "repos_url": "https://api.github.com/users/Acedio/repos", + "events_url": "https://api.github.com/users/Acedio/events{/privacy}", + "received_events_url": "https://api.github.com/users/Acedio/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Acedio/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Acedio/nand2tetris", + "forks_url": "https://api.github.com/repos/Acedio/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/Acedio/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Acedio/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Acedio/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/Acedio/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/Acedio/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/Acedio/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/Acedio/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/Acedio/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/Acedio/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/Acedio/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Acedio/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Acedio/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Acedio/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Acedio/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Acedio/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/Acedio/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/Acedio/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/Acedio/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/Acedio/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/Acedio/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Acedio/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Acedio/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Acedio/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Acedio/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/Acedio/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Acedio/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/Acedio/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Acedio/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/Acedio/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/Acedio/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Acedio/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Acedio/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Acedio/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/Acedio/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/Acedio/nand2tetris/deployments", + "created_at": "2015-11-08T22:42:32Z", + "updated_at": "2016-01-18T22:29:19Z", + "pushed_at": "2016-01-30T05:06:17Z", + "git_url": "git://github.com/Acedio/nand2tetris.git", + "ssh_url": "git@github.com:Acedio/nand2tetris.git", + "clone_url": "https://github.com/Acedio/nand2tetris.git", + "svn_url": "https://github.com/Acedio/nand2tetris", + "homepage": null, + "size": 223, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 50171875, + "name": "nand2tetris", + "full_name": "timmdunker/nand2tetris", + "owner": { + "login": "timmdunker", + "id": 16814248, + "avatar_url": "https://avatars.githubusercontent.com/u/16814248?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/timmdunker", + "html_url": "https://github.com/timmdunker", + "followers_url": "https://api.github.com/users/timmdunker/followers", + "following_url": "https://api.github.com/users/timmdunker/following{/other_user}", + "gists_url": "https://api.github.com/users/timmdunker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/timmdunker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/timmdunker/subscriptions", + "organizations_url": "https://api.github.com/users/timmdunker/orgs", + "repos_url": "https://api.github.com/users/timmdunker/repos", + "events_url": "https://api.github.com/users/timmdunker/events{/privacy}", + "received_events_url": "https://api.github.com/users/timmdunker/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/timmdunker/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/timmdunker/nand2tetris", + "forks_url": "https://api.github.com/repos/timmdunker/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/timmdunker/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/timmdunker/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/timmdunker/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/timmdunker/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/timmdunker/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/timmdunker/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/timmdunker/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/timmdunker/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/timmdunker/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/timmdunker/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/timmdunker/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/timmdunker/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/timmdunker/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/timmdunker/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/timmdunker/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/timmdunker/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/timmdunker/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/timmdunker/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/timmdunker/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/timmdunker/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/timmdunker/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/timmdunker/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/timmdunker/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/timmdunker/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/timmdunker/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/timmdunker/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/timmdunker/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/timmdunker/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/timmdunker/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/timmdunker/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/timmdunker/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/timmdunker/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/timmdunker/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/timmdunker/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/timmdunker/nand2tetris/deployments", + "created_at": "2016-01-22T09:37:23Z", + "updated_at": "2016-01-22T09:40:03Z", + "pushed_at": "2016-01-22T09:40:01Z", + "git_url": "git://github.com/timmdunker/nand2tetris.git", + "ssh_url": "git@github.com:timmdunker/nand2tetris.git", + "clone_url": "https://github.com/timmdunker/nand2tetris.git", + "svn_url": "https://github.com/timmdunker/nand2tetris", + "homepage": null, + "size": 150, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 49342840, + "name": "nand2tetris", + "full_name": "AndreySBer/nand2tetris", + "owner": { + "login": "AndreySBer", + "id": 13121319, + "avatar_url": "https://avatars.githubusercontent.com/u/13121319?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/AndreySBer", + "html_url": "https://github.com/AndreySBer", + "followers_url": "https://api.github.com/users/AndreySBer/followers", + "following_url": "https://api.github.com/users/AndreySBer/following{/other_user}", + "gists_url": "https://api.github.com/users/AndreySBer/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AndreySBer/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AndreySBer/subscriptions", + "organizations_url": "https://api.github.com/users/AndreySBer/orgs", + "repos_url": "https://api.github.com/users/AndreySBer/repos", + "events_url": "https://api.github.com/users/AndreySBer/events{/privacy}", + "received_events_url": "https://api.github.com/users/AndreySBer/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/AndreySBer/nand2tetris", + "description": "Project 1: Boolean Logic", + "fork": false, + "url": "https://api.github.com/repos/AndreySBer/nand2tetris", + "forks_url": "https://api.github.com/repos/AndreySBer/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/AndreySBer/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AndreySBer/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AndreySBer/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/AndreySBer/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/AndreySBer/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/AndreySBer/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/AndreySBer/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/AndreySBer/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/AndreySBer/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/AndreySBer/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AndreySBer/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AndreySBer/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AndreySBer/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AndreySBer/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AndreySBer/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/AndreySBer/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/AndreySBer/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/AndreySBer/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/AndreySBer/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/AndreySBer/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AndreySBer/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AndreySBer/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AndreySBer/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AndreySBer/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/AndreySBer/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AndreySBer/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/AndreySBer/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AndreySBer/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/AndreySBer/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/AndreySBer/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AndreySBer/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AndreySBer/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AndreySBer/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/AndreySBer/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/AndreySBer/nand2tetris/deployments", + "created_at": "2016-01-09T21:52:54Z", + "updated_at": "2016-01-13T19:28:05Z", + "pushed_at": "2016-01-13T19:38:55Z", + "git_url": "git://github.com/AndreySBer/nand2tetris.git", + "ssh_url": "git@github.com:AndreySBer/nand2tetris.git", + "clone_url": "https://github.com/AndreySBer/nand2tetris.git", + "svn_url": "https://github.com/AndreySBer/nand2tetris", + "homepage": "", + "size": 1881, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 47327434, + "name": "nand2tetris", + "full_name": "msnak14909/nand2tetris", + "owner": { + "login": "msnak14909", + "id": 4802296, + "avatar_url": "https://avatars.githubusercontent.com/u/4802296?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/msnak14909", + "html_url": "https://github.com/msnak14909", + "followers_url": "https://api.github.com/users/msnak14909/followers", + "following_url": "https://api.github.com/users/msnak14909/following{/other_user}", + "gists_url": "https://api.github.com/users/msnak14909/gists{/gist_id}", + "starred_url": "https://api.github.com/users/msnak14909/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msnak14909/subscriptions", + "organizations_url": "https://api.github.com/users/msnak14909/orgs", + "repos_url": "https://api.github.com/users/msnak14909/repos", + "events_url": "https://api.github.com/users/msnak14909/events{/privacy}", + "received_events_url": "https://api.github.com/users/msnak14909/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/msnak14909/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/msnak14909/nand2tetris", + "forks_url": "https://api.github.com/repos/msnak14909/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/msnak14909/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/msnak14909/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/msnak14909/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/msnak14909/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/msnak14909/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/msnak14909/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/msnak14909/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/msnak14909/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/msnak14909/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/msnak14909/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/msnak14909/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/msnak14909/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/msnak14909/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/msnak14909/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/msnak14909/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/msnak14909/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/msnak14909/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/msnak14909/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/msnak14909/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/msnak14909/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/msnak14909/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/msnak14909/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/msnak14909/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/msnak14909/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/msnak14909/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/msnak14909/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/msnak14909/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/msnak14909/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/msnak14909/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/msnak14909/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/msnak14909/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/msnak14909/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/msnak14909/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/msnak14909/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/msnak14909/nand2tetris/deployments", + "created_at": "2015-12-03T11:20:37Z", + "updated_at": "2015-12-03T11:27:07Z", + "pushed_at": "2016-01-02T10:26:11Z", + "git_url": "git://github.com/msnak14909/nand2tetris.git", + "ssh_url": "git@github.com:msnak14909/nand2tetris.git", + "clone_url": "https://github.com/msnak14909/nand2tetris.git", + "svn_url": "https://github.com/msnak14909/nand2tetris", + "homepage": null, + "size": 177, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 46321572, + "name": "nand2tetris", + "full_name": "deeparcher/nand2tetris", + "owner": { + "login": "deeparcher", + "id": 11221190, + "avatar_url": "https://avatars.githubusercontent.com/u/11221190?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/deeparcher", + "html_url": "https://github.com/deeparcher", + "followers_url": "https://api.github.com/users/deeparcher/followers", + "following_url": "https://api.github.com/users/deeparcher/following{/other_user}", + "gists_url": "https://api.github.com/users/deeparcher/gists{/gist_id}", + "starred_url": "https://api.github.com/users/deeparcher/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/deeparcher/subscriptions", + "organizations_url": "https://api.github.com/users/deeparcher/orgs", + "repos_url": "https://api.github.com/users/deeparcher/repos", + "events_url": "https://api.github.com/users/deeparcher/events{/privacy}", + "received_events_url": "https://api.github.com/users/deeparcher/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/deeparcher/nand2tetris", + "description": "My solutions for Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/deeparcher/nand2tetris", + "forks_url": "https://api.github.com/repos/deeparcher/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/deeparcher/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/deeparcher/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/deeparcher/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/deeparcher/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/deeparcher/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/deeparcher/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/deeparcher/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/deeparcher/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/deeparcher/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/deeparcher/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/deeparcher/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/deeparcher/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/deeparcher/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/deeparcher/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/deeparcher/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/deeparcher/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/deeparcher/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/deeparcher/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/deeparcher/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/deeparcher/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/deeparcher/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/deeparcher/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/deeparcher/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/deeparcher/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/deeparcher/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/deeparcher/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/deeparcher/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/deeparcher/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/deeparcher/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/deeparcher/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/deeparcher/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/deeparcher/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/deeparcher/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/deeparcher/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/deeparcher/nand2tetris/deployments", + "created_at": "2015-11-17T03:45:12Z", + "updated_at": "2015-11-17T03:45:47Z", + "pushed_at": "2015-12-13T00:16:00Z", + "git_url": "git://github.com/deeparcher/nand2tetris.git", + "ssh_url": "git@github.com:deeparcher/nand2tetris.git", + "clone_url": "https://github.com/deeparcher/nand2tetris.git", + "svn_url": "https://github.com/deeparcher/nand2tetris", + "homepage": null, + "size": 193, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 48465113, + "name": "Nand2Tetris", + "full_name": "roycocup/Nand2Tetris", + "owner": { + "login": "roycocup", + "id": 132394, + "avatar_url": "https://avatars.githubusercontent.com/u/132394?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/roycocup", + "html_url": "https://github.com/roycocup", + "followers_url": "https://api.github.com/users/roycocup/followers", + "following_url": "https://api.github.com/users/roycocup/following{/other_user}", + "gists_url": "https://api.github.com/users/roycocup/gists{/gist_id}", + "starred_url": "https://api.github.com/users/roycocup/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/roycocup/subscriptions", + "organizations_url": "https://api.github.com/users/roycocup/orgs", + "repos_url": "https://api.github.com/users/roycocup/repos", + "events_url": "https://api.github.com/users/roycocup/events{/privacy}", + "received_events_url": "https://api.github.com/users/roycocup/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/roycocup/Nand2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/roycocup/Nand2Tetris", + "forks_url": "https://api.github.com/repos/roycocup/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/roycocup/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/roycocup/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/roycocup/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/roycocup/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/roycocup/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/roycocup/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/roycocup/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/roycocup/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/roycocup/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/roycocup/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/roycocup/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/roycocup/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/roycocup/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/roycocup/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/roycocup/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/roycocup/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/roycocup/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/roycocup/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/roycocup/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/roycocup/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/roycocup/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/roycocup/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/roycocup/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/roycocup/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/roycocup/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/roycocup/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/roycocup/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/roycocup/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/roycocup/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/roycocup/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/roycocup/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/roycocup/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/roycocup/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/roycocup/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/roycocup/Nand2Tetris/deployments", + "created_at": "2015-12-23T02:43:18Z", + "updated_at": "2015-12-23T02:43:56Z", + "pushed_at": "2015-12-23T14:29:37Z", + "git_url": "git://github.com/roycocup/Nand2Tetris.git", + "ssh_url": "git@github.com:roycocup/Nand2Tetris.git", + "clone_url": "https://github.com/roycocup/Nand2Tetris.git", + "svn_url": "https://github.com/roycocup/Nand2Tetris", + "homepage": null, + "size": 170, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 48654885, + "name": "NAND2TETRIS", + "full_name": "Mikevin/NAND2TETRIS", + "owner": { + "login": "Mikevin", + "id": 1011429, + "avatar_url": "https://avatars.githubusercontent.com/u/1011429?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Mikevin", + "html_url": "https://github.com/Mikevin", + "followers_url": "https://api.github.com/users/Mikevin/followers", + "following_url": "https://api.github.com/users/Mikevin/following{/other_user}", + "gists_url": "https://api.github.com/users/Mikevin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mikevin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mikevin/subscriptions", + "organizations_url": "https://api.github.com/users/Mikevin/orgs", + "repos_url": "https://api.github.com/users/Mikevin/repos", + "events_url": "https://api.github.com/users/Mikevin/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mikevin/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Mikevin/NAND2TETRIS", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/Mikevin/NAND2TETRIS", + "forks_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/forks", + "keys_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/teams", + "hooks_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/hooks", + "issue_events_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/issues/events{/number}", + "events_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/events", + "assignees_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/assignees{/user}", + "branches_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/branches{/branch}", + "tags_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/tags", + "blobs_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/languages", + "stargazers_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/stargazers", + "contributors_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/contributors", + "subscribers_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/subscribers", + "subscription_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/subscription", + "commits_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/contents/{+path}", + "compare_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/merges", + "archive_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/downloads", + "issues_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/issues{/number}", + "pulls_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/labels{/name}", + "releases_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/releases{/id}", + "deployments_url": "https://api.github.com/repos/Mikevin/NAND2TETRIS/deployments", + "created_at": "2015-12-27T18:02:26Z", + "updated_at": "2015-12-27T18:05:36Z", + "pushed_at": "2015-12-27T18:05:33Z", + "git_url": "git://github.com/Mikevin/NAND2TETRIS.git", + "ssh_url": "git@github.com:Mikevin/NAND2TETRIS.git", + "clone_url": "https://github.com/Mikevin/NAND2TETRIS.git", + "svn_url": "https://github.com/Mikevin/NAND2TETRIS", + "homepage": null, + "size": 608, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 45140361, + "name": "nand2tetris", + "full_name": "torchhound/nand2tetris", + "owner": { + "login": "torchhound", + "id": 5600929, + "avatar_url": "https://avatars.githubusercontent.com/u/5600929?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/torchhound", + "html_url": "https://github.com/torchhound", + "followers_url": "https://api.github.com/users/torchhound/followers", + "following_url": "https://api.github.com/users/torchhound/following{/other_user}", + "gists_url": "https://api.github.com/users/torchhound/gists{/gist_id}", + "starred_url": "https://api.github.com/users/torchhound/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/torchhound/subscriptions", + "organizations_url": "https://api.github.com/users/torchhound/orgs", + "repos_url": "https://api.github.com/users/torchhound/repos", + "events_url": "https://api.github.com/users/torchhound/events{/privacy}", + "received_events_url": "https://api.github.com/users/torchhound/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/torchhound/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/torchhound/nand2tetris", + "forks_url": "https://api.github.com/repos/torchhound/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/torchhound/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/torchhound/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/torchhound/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/torchhound/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/torchhound/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/torchhound/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/torchhound/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/torchhound/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/torchhound/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/torchhound/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/torchhound/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/torchhound/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/torchhound/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/torchhound/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/torchhound/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/torchhound/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/torchhound/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/torchhound/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/torchhound/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/torchhound/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/torchhound/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/torchhound/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/torchhound/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/torchhound/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/torchhound/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/torchhound/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/torchhound/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/torchhound/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/torchhound/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/torchhound/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/torchhound/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/torchhound/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/torchhound/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/torchhound/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/torchhound/nand2tetris/deployments", + "created_at": "2015-10-28T20:38:41Z", + "updated_at": "2015-10-28T20:42:11Z", + "pushed_at": "2015-12-04T00:30:19Z", + "git_url": "git://github.com/torchhound/nand2tetris.git", + "ssh_url": "git@github.com:torchhound/nand2tetris.git", + "clone_url": "https://github.com/torchhound/nand2tetris.git", + "svn_url": "https://github.com/torchhound/nand2tetris", + "homepage": null, + "size": 4838, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 46528719, + "name": "nand2tetris", + "full_name": "delatorrejuanchi/nand2tetris", + "owner": { + "login": "delatorrejuanchi", + "id": 6722188, + "avatar_url": "https://avatars.githubusercontent.com/u/6722188?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/delatorrejuanchi", + "html_url": "https://github.com/delatorrejuanchi", + "followers_url": "https://api.github.com/users/delatorrejuanchi/followers", + "following_url": "https://api.github.com/users/delatorrejuanchi/following{/other_user}", + "gists_url": "https://api.github.com/users/delatorrejuanchi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/delatorrejuanchi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/delatorrejuanchi/subscriptions", + "organizations_url": "https://api.github.com/users/delatorrejuanchi/orgs", + "repos_url": "https://api.github.com/users/delatorrejuanchi/repos", + "events_url": "https://api.github.com/users/delatorrejuanchi/events{/privacy}", + "received_events_url": "https://api.github.com/users/delatorrejuanchi/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/delatorrejuanchi/nand2tetris", + "description": "Code written for Coursera's Nand2Tetris course.", + "fork": false, + "url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris", + "forks_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/delatorrejuanchi/nand2tetris/deployments", + "created_at": "2015-11-20T00:25:45Z", + "updated_at": "2015-11-20T00:26:53Z", + "pushed_at": "2015-11-27T17:14:27Z", + "git_url": "git://github.com/delatorrejuanchi/nand2tetris.git", + "ssh_url": "git@github.com:delatorrejuanchi/nand2tetris.git", + "clone_url": "https://github.com/delatorrejuanchi/nand2tetris.git", + "svn_url": "https://github.com/delatorrejuanchi/nand2tetris", + "homepage": null, + "size": 157, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 46113199, + "name": "nand2tetris", + "full_name": "zanders3/nand2tetris", + "owner": { + "login": "zanders3", + "id": 3011266, + "avatar_url": "https://avatars.githubusercontent.com/u/3011266?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zanders3", + "html_url": "https://github.com/zanders3", + "followers_url": "https://api.github.com/users/zanders3/followers", + "following_url": "https://api.github.com/users/zanders3/following{/other_user}", + "gists_url": "https://api.github.com/users/zanders3/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zanders3/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zanders3/subscriptions", + "organizations_url": "https://api.github.com/users/zanders3/orgs", + "repos_url": "https://api.github.com/users/zanders3/repos", + "events_url": "https://api.github.com/users/zanders3/events{/privacy}", + "received_events_url": "https://api.github.com/users/zanders3/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/zanders3/nand2tetris", + "description": "Building a computer from first principles", + "fork": false, + "url": "https://api.github.com/repos/zanders3/nand2tetris", + "forks_url": "https://api.github.com/repos/zanders3/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/zanders3/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/zanders3/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/zanders3/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/zanders3/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/zanders3/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/zanders3/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/zanders3/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/zanders3/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/zanders3/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/zanders3/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/zanders3/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/zanders3/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/zanders3/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/zanders3/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/zanders3/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/zanders3/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/zanders3/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/zanders3/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/zanders3/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/zanders3/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/zanders3/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/zanders3/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/zanders3/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/zanders3/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/zanders3/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/zanders3/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/zanders3/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/zanders3/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/zanders3/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/zanders3/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/zanders3/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/zanders3/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/zanders3/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/zanders3/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/zanders3/nand2tetris/deployments", + "created_at": "2015-11-13T09:38:30Z", + "updated_at": "2015-11-18T23:25:53Z", + "pushed_at": "2015-11-24T23:48:25Z", + "git_url": "git://github.com/zanders3/nand2tetris.git", + "ssh_url": "git@github.com:zanders3/nand2tetris.git", + "clone_url": "https://github.com/zanders3/nand2tetris.git", + "svn_url": "https://github.com/zanders3/nand2tetris", + "homepage": "http://www.nand2tetris.org/", + "size": 604, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 45667435, + "name": "nand2tetris", + "full_name": "gshaw/nand2tetris", + "owner": { + "login": "gshaw", + "id": 33321, + "avatar_url": "https://avatars.githubusercontent.com/u/33321?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gshaw", + "html_url": "https://github.com/gshaw", + "followers_url": "https://api.github.com/users/gshaw/followers", + "following_url": "https://api.github.com/users/gshaw/following{/other_user}", + "gists_url": "https://api.github.com/users/gshaw/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gshaw/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gshaw/subscriptions", + "organizations_url": "https://api.github.com/users/gshaw/orgs", + "repos_url": "https://api.github.com/users/gshaw/repos", + "events_url": "https://api.github.com/users/gshaw/events{/privacy}", + "received_events_url": "https://api.github.com/users/gshaw/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/gshaw/nand2tetris", + "description": "Project solutions for Nand2Tetris course", + "fork": false, + "url": "https://api.github.com/repos/gshaw/nand2tetris", + "forks_url": "https://api.github.com/repos/gshaw/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/gshaw/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/gshaw/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/gshaw/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/gshaw/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/gshaw/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/gshaw/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/gshaw/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/gshaw/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/gshaw/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/gshaw/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/gshaw/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/gshaw/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/gshaw/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/gshaw/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/gshaw/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/gshaw/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/gshaw/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/gshaw/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/gshaw/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/gshaw/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/gshaw/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/gshaw/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/gshaw/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/gshaw/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/gshaw/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/gshaw/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/gshaw/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/gshaw/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/gshaw/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/gshaw/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/gshaw/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/gshaw/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/gshaw/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/gshaw/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/gshaw/nand2tetris/deployments", + "created_at": "2015-11-06T07:48:19Z", + "updated_at": "2015-11-06T07:53:17Z", + "pushed_at": "2015-11-23T06:58:20Z", + "git_url": "git://github.com/gshaw/nand2tetris.git", + "ssh_url": "git@github.com:gshaw/nand2tetris.git", + "clone_url": "https://github.com/gshaw/nand2tetris.git", + "svn_url": "https://github.com/gshaw/nand2tetris", + "homepage": "http://nand2tetris.org", + "size": 237, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 23497643, + "name": "01_nand2tetris", + "full_name": "cashstramel/01_nand2tetris", + "owner": { + "login": "cashstramel", + "id": 4407796, + "avatar_url": "https://avatars.githubusercontent.com/u/4407796?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cashstramel", + "html_url": "https://github.com/cashstramel", + "followers_url": "https://api.github.com/users/cashstramel/followers", + "following_url": "https://api.github.com/users/cashstramel/following{/other_user}", + "gists_url": "https://api.github.com/users/cashstramel/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cashstramel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cashstramel/subscriptions", + "organizations_url": "https://api.github.com/users/cashstramel/orgs", + "repos_url": "https://api.github.com/users/cashstramel/repos", + "events_url": "https://api.github.com/users/cashstramel/events{/privacy}", + "received_events_url": "https://api.github.com/users/cashstramel/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cashstramel/01_nand2tetris", + "description": "TECS Code", + "fork": false, + "url": "https://api.github.com/repos/cashstramel/01_nand2tetris", + "forks_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/forks", + "keys_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/events", + "assignees_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/merges", + "archive_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cashstramel/01_nand2tetris/deployments", + "created_at": "2014-08-30T18:07:54Z", + "updated_at": "2016-03-19T17:00:29Z", + "pushed_at": "2014-08-30T18:13:24Z", + "git_url": "git://github.com/cashstramel/01_nand2tetris.git", + "ssh_url": "git@github.com:cashstramel/01_nand2tetris.git", + "clone_url": "https://github.com/cashstramel/01_nand2tetris.git", + "svn_url": "https://github.com/cashstramel/01_nand2tetris", + "homepage": null, + "size": 6796, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 51472139, + "name": "nand2tetris", + "full_name": "ksullivan2/nand2tetris", + "owner": { + "login": "ksullivan2", + "id": 15851031, + "avatar_url": "https://avatars.githubusercontent.com/u/15851031?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ksullivan2", + "html_url": "https://github.com/ksullivan2", + "followers_url": "https://api.github.com/users/ksullivan2/followers", + "following_url": "https://api.github.com/users/ksullivan2/following{/other_user}", + "gists_url": "https://api.github.com/users/ksullivan2/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ksullivan2/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ksullivan2/subscriptions", + "organizations_url": "https://api.github.com/users/ksullivan2/orgs", + "repos_url": "https://api.github.com/users/ksullivan2/repos", + "events_url": "https://api.github.com/users/ksullivan2/events{/privacy}", + "received_events_url": "https://api.github.com/users/ksullivan2/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/ksullivan2/nand2tetris", + "description": "going through problem in book....", + "fork": false, + "url": "https://api.github.com/repos/ksullivan2/nand2tetris", + "forks_url": "https://api.github.com/repos/ksullivan2/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/ksullivan2/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ksullivan2/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ksullivan2/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/ksullivan2/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/ksullivan2/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/ksullivan2/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/ksullivan2/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/ksullivan2/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/ksullivan2/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/ksullivan2/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ksullivan2/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ksullivan2/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ksullivan2/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ksullivan2/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ksullivan2/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/ksullivan2/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/ksullivan2/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/ksullivan2/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/ksullivan2/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/ksullivan2/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ksullivan2/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ksullivan2/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ksullivan2/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ksullivan2/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/ksullivan2/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ksullivan2/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/ksullivan2/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ksullivan2/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/ksullivan2/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/ksullivan2/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ksullivan2/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ksullivan2/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ksullivan2/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/ksullivan2/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/ksullivan2/nand2tetris/deployments", + "created_at": "2016-02-10T21:05:55Z", + "updated_at": "2016-02-10T22:28:12Z", + "pushed_at": "2016-02-23T04:06:20Z", + "git_url": "git://github.com/ksullivan2/nand2tetris.git", + "ssh_url": "git@github.com:ksullivan2/nand2tetris.git", + "clone_url": "https://github.com/ksullivan2/nand2tetris.git", + "svn_url": "https://github.com/ksullivan2/nand2tetris", + "homepage": null, + "size": 506, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 52894637, + "name": "nad2tetris-course", + "full_name": "dannyduc/nad2tetris-course", + "owner": { + "login": "dannyduc", + "id": 957278, + "avatar_url": "https://avatars.githubusercontent.com/u/957278?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dannyduc", + "html_url": "https://github.com/dannyduc", + "followers_url": "https://api.github.com/users/dannyduc/followers", + "following_url": "https://api.github.com/users/dannyduc/following{/other_user}", + "gists_url": "https://api.github.com/users/dannyduc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dannyduc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dannyduc/subscriptions", + "organizations_url": "https://api.github.com/users/dannyduc/orgs", + "repos_url": "https://api.github.com/users/dannyduc/repos", + "events_url": "https://api.github.com/users/dannyduc/events{/privacy}", + "received_events_url": "https://api.github.com/users/dannyduc/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dannyduc/nad2tetris-course", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dannyduc/nad2tetris-course", + "forks_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/forks", + "keys_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/teams", + "hooks_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/hooks", + "issue_events_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/issues/events{/number}", + "events_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/events", + "assignees_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/assignees{/user}", + "branches_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/branches{/branch}", + "tags_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/tags", + "blobs_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/languages", + "stargazers_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/stargazers", + "contributors_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/contributors", + "subscribers_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/subscribers", + "subscription_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/subscription", + "commits_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/contents/{+path}", + "compare_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/merges", + "archive_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/downloads", + "issues_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/issues{/number}", + "pulls_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/labels{/name}", + "releases_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/releases{/id}", + "deployments_url": "https://api.github.com/repos/dannyduc/nad2tetris-course/deployments", + "created_at": "2016-03-01T17:08:54Z", + "updated_at": "2016-03-01T17:15:59Z", + "pushed_at": "2016-03-03T17:34:12Z", + "git_url": "git://github.com/dannyduc/nad2tetris-course.git", + "ssh_url": "git@github.com:dannyduc/nad2tetris-course.git", + "clone_url": "https://github.com/dannyduc/nad2tetris-course.git", + "svn_url": "https://github.com/dannyduc/nad2tetris-course", + "homepage": null, + "size": 9206, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 51025160, + "name": "nand2tetris", + "full_name": "chrisvittal/nand2tetris", + "owner": { + "login": "chrisvittal", + "id": 15916123, + "avatar_url": "https://avatars.githubusercontent.com/u/15916123?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/chrisvittal", + "html_url": "https://github.com/chrisvittal", + "followers_url": "https://api.github.com/users/chrisvittal/followers", + "following_url": "https://api.github.com/users/chrisvittal/following{/other_user}", + "gists_url": "https://api.github.com/users/chrisvittal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chrisvittal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chrisvittal/subscriptions", + "organizations_url": "https://api.github.com/users/chrisvittal/orgs", + "repos_url": "https://api.github.com/users/chrisvittal/repos", + "events_url": "https://api.github.com/users/chrisvittal/events{/privacy}", + "received_events_url": "https://api.github.com/users/chrisvittal/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/chrisvittal/nand2tetris", + "description": "Project files for projects in Nisan and Schocken's \"The Elements of Computing Systems\"", + "fork": false, + "url": "https://api.github.com/repos/chrisvittal/nand2tetris", + "forks_url": "https://api.github.com/repos/chrisvittal/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/chrisvittal/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/chrisvittal/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/chrisvittal/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/chrisvittal/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/chrisvittal/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/chrisvittal/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/chrisvittal/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/chrisvittal/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/chrisvittal/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/chrisvittal/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/chrisvittal/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/chrisvittal/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/chrisvittal/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/chrisvittal/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/chrisvittal/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/chrisvittal/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/chrisvittal/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/chrisvittal/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/chrisvittal/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/chrisvittal/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/chrisvittal/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/chrisvittal/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/chrisvittal/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/chrisvittal/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/chrisvittal/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/chrisvittal/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/chrisvittal/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/chrisvittal/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/chrisvittal/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/chrisvittal/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/chrisvittal/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/chrisvittal/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/chrisvittal/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/chrisvittal/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/chrisvittal/nand2tetris/deployments", + "created_at": "2016-02-03T19:36:35Z", + "updated_at": "2016-02-03T20:08:42Z", + "pushed_at": "2016-03-03T06:01:52Z", + "git_url": "git://github.com/chrisvittal/nand2tetris.git", + "ssh_url": "git@github.com:chrisvittal/nand2tetris.git", + "clone_url": "https://github.com/chrisvittal/nand2tetris.git", + "svn_url": "https://github.com/chrisvittal/nand2tetris", + "homepage": null, + "size": 189, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 53259792, + "name": "nand2tetris", + "full_name": "wivren/nand2tetris", + "owner": { + "login": "wivren", + "id": 9570672, + "avatar_url": "https://avatars.githubusercontent.com/u/9570672?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/wivren", + "html_url": "https://github.com/wivren", + "followers_url": "https://api.github.com/users/wivren/followers", + "following_url": "https://api.github.com/users/wivren/following{/other_user}", + "gists_url": "https://api.github.com/users/wivren/gists{/gist_id}", + "starred_url": "https://api.github.com/users/wivren/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wivren/subscriptions", + "organizations_url": "https://api.github.com/users/wivren/orgs", + "repos_url": "https://api.github.com/users/wivren/repos", + "events_url": "https://api.github.com/users/wivren/events{/privacy}", + "received_events_url": "https://api.github.com/users/wivren/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/wivren/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/wivren/nand2tetris", + "forks_url": "https://api.github.com/repos/wivren/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/wivren/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/wivren/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/wivren/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/wivren/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/wivren/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/wivren/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/wivren/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/wivren/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/wivren/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/wivren/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/wivren/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/wivren/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/wivren/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/wivren/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/wivren/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/wivren/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/wivren/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/wivren/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/wivren/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/wivren/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/wivren/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/wivren/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/wivren/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/wivren/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/wivren/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/wivren/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/wivren/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/wivren/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/wivren/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/wivren/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/wivren/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/wivren/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/wivren/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/wivren/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/wivren/nand2tetris/deployments", + "created_at": "2016-03-06T14:47:56Z", + "updated_at": "2016-03-09T11:03:37Z", + "pushed_at": "2016-03-09T11:03:35Z", + "git_url": "git://github.com/wivren/nand2tetris.git", + "ssh_url": "git@github.com:wivren/nand2tetris.git", + "clone_url": "https://github.com/wivren/nand2tetris.git", + "svn_url": "https://github.com/wivren/nand2tetris", + "homepage": null, + "size": 205, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 35060558, + "name": "nand2tetris", + "full_name": "parmarmanojkumar/nand2tetris", + "owner": { + "login": "parmarmanojkumar", + "id": 10676690, + "avatar_url": "https://avatars.githubusercontent.com/u/10676690?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/parmarmanojkumar", + "html_url": "https://github.com/parmarmanojkumar", + "followers_url": "https://api.github.com/users/parmarmanojkumar/followers", + "following_url": "https://api.github.com/users/parmarmanojkumar/following{/other_user}", + "gists_url": "https://api.github.com/users/parmarmanojkumar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/parmarmanojkumar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/parmarmanojkumar/subscriptions", + "organizations_url": "https://api.github.com/users/parmarmanojkumar/orgs", + "repos_url": "https://api.github.com/users/parmarmanojkumar/repos", + "events_url": "https://api.github.com/users/parmarmanojkumar/events{/privacy}", + "received_events_url": "https://api.github.com/users/parmarmanojkumar/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/parmarmanojkumar/nand2tetris", + "description": "Coursework of nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris", + "forks_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/parmarmanojkumar/nand2tetris/deployments", + "created_at": "2015-05-04T21:24:53Z", + "updated_at": "2016-03-22T16:56:05Z", + "pushed_at": "2016-03-22T16:56:03Z", + "git_url": "git://github.com/parmarmanojkumar/nand2tetris.git", + "ssh_url": "git@github.com:parmarmanojkumar/nand2tetris.git", + "clone_url": "https://github.com/parmarmanojkumar/nand2tetris.git", + "svn_url": "https://github.com/parmarmanojkumar/nand2tetris", + "homepage": null, + "size": 336, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 51479059, + "name": "nand2tetris", + "full_name": "nebkor/nand2tetris", + "owner": { + "login": "nebkor", + "id": 517215, + "avatar_url": "https://avatars.githubusercontent.com/u/517215?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nebkor", + "html_url": "https://github.com/nebkor", + "followers_url": "https://api.github.com/users/nebkor/followers", + "following_url": "https://api.github.com/users/nebkor/following{/other_user}", + "gists_url": "https://api.github.com/users/nebkor/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nebkor/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nebkor/subscriptions", + "organizations_url": "https://api.github.com/users/nebkor/orgs", + "repos_url": "https://api.github.com/users/nebkor/repos", + "events_url": "https://api.github.com/users/nebkor/events{/privacy}", + "received_events_url": "https://api.github.com/users/nebkor/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/nebkor/nand2tetris", + "description": "Repository of my work for \"The Elements of Computing Systems\".", + "fork": false, + "url": "https://api.github.com/repos/nebkor/nand2tetris", + "forks_url": "https://api.github.com/repos/nebkor/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/nebkor/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nebkor/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nebkor/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/nebkor/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/nebkor/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/nebkor/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/nebkor/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/nebkor/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/nebkor/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/nebkor/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nebkor/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nebkor/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nebkor/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nebkor/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nebkor/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/nebkor/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/nebkor/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/nebkor/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/nebkor/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/nebkor/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nebkor/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nebkor/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nebkor/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nebkor/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/nebkor/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nebkor/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/nebkor/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nebkor/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/nebkor/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/nebkor/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nebkor/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nebkor/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nebkor/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/nebkor/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/nebkor/nand2tetris/deployments", + "created_at": "2016-02-10T22:59:37Z", + "updated_at": "2016-02-10T23:00:30Z", + "pushed_at": "2016-03-22T17:30:08Z", + "git_url": "git://github.com/nebkor/nand2tetris.git", + "ssh_url": "git@github.com:nebkor/nand2tetris.git", + "clone_url": "https://github.com/nebkor/nand2tetris.git", + "svn_url": "https://github.com/nebkor/nand2tetris", + "homepage": null, + "size": 182, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 53137977, + "name": "nand2tetris", + "full_name": "tinylic/nand2tetris", + "owner": { + "login": "tinylic", + "id": 7011260, + "avatar_url": "https://avatars.githubusercontent.com/u/7011260?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tinylic", + "html_url": "https://github.com/tinylic", + "followers_url": "https://api.github.com/users/tinylic/followers", + "following_url": "https://api.github.com/users/tinylic/following{/other_user}", + "gists_url": "https://api.github.com/users/tinylic/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tinylic/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tinylic/subscriptions", + "organizations_url": "https://api.github.com/users/tinylic/orgs", + "repos_url": "https://api.github.com/users/tinylic/repos", + "events_url": "https://api.github.com/users/tinylic/events{/privacy}", + "received_events_url": "https://api.github.com/users/tinylic/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/tinylic/nand2tetris", + "description": "projects for the course nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/tinylic/nand2tetris", + "forks_url": "https://api.github.com/repos/tinylic/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/tinylic/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/tinylic/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/tinylic/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/tinylic/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/tinylic/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/tinylic/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/tinylic/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/tinylic/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/tinylic/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/tinylic/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/tinylic/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/tinylic/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/tinylic/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/tinylic/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/tinylic/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/tinylic/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/tinylic/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/tinylic/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/tinylic/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/tinylic/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/tinylic/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/tinylic/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/tinylic/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/tinylic/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/tinylic/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/tinylic/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/tinylic/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/tinylic/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/tinylic/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/tinylic/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/tinylic/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/tinylic/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/tinylic/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/tinylic/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/tinylic/nand2tetris/deployments", + "created_at": "2016-03-04T13:41:23Z", + "updated_at": "2016-03-04T13:44:27Z", + "pushed_at": "2016-03-24T10:01:24Z", + "git_url": "git://github.com/tinylic/nand2tetris.git", + "ssh_url": "git@github.com:tinylic/nand2tetris.git", + "clone_url": "https://github.com/tinylic/nand2tetris.git", + "svn_url": "https://github.com/tinylic/nand2tetris", + "homepage": null, + "size": 166, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 53109295, + "name": "nand2tetris", + "full_name": "kenvifire/nand2tetris", + "owner": { + "login": "kenvifire", + "id": 1464416, + "avatar_url": "https://avatars.githubusercontent.com/u/1464416?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kenvifire", + "html_url": "https://github.com/kenvifire", + "followers_url": "https://api.github.com/users/kenvifire/followers", + "following_url": "https://api.github.com/users/kenvifire/following{/other_user}", + "gists_url": "https://api.github.com/users/kenvifire/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kenvifire/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kenvifire/subscriptions", + "organizations_url": "https://api.github.com/users/kenvifire/orgs", + "repos_url": "https://api.github.com/users/kenvifire/repos", + "events_url": "https://api.github.com/users/kenvifire/events{/privacy}", + "received_events_url": "https://api.github.com/users/kenvifire/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kenvifire/nand2tetris", + "description": "projects for nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/kenvifire/nand2tetris", + "forks_url": "https://api.github.com/repos/kenvifire/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kenvifire/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kenvifire/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kenvifire/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kenvifire/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kenvifire/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kenvifire/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kenvifire/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kenvifire/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kenvifire/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kenvifire/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kenvifire/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kenvifire/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kenvifire/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kenvifire/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kenvifire/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kenvifire/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kenvifire/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kenvifire/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kenvifire/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kenvifire/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kenvifire/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kenvifire/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kenvifire/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kenvifire/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kenvifire/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kenvifire/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kenvifire/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kenvifire/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kenvifire/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kenvifire/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kenvifire/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kenvifire/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kenvifire/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kenvifire/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kenvifire/nand2tetris/deployments", + "created_at": "2016-03-04T05:15:17Z", + "updated_at": "2016-03-04T05:17:00Z", + "pushed_at": "2016-04-05T03:23:58Z", + "git_url": "git://github.com/kenvifire/nand2tetris.git", + "ssh_url": "git@github.com:kenvifire/nand2tetris.git", + "clone_url": "https://github.com/kenvifire/nand2tetris.git", + "svn_url": "https://github.com/kenvifire/nand2tetris", + "homepage": null, + "size": 172, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 54350821, + "name": "nand2tetris", + "full_name": "dewyze/nand2tetris", + "owner": { + "login": "dewyze", + "id": 1312168, + "avatar_url": "https://avatars.githubusercontent.com/u/1312168?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dewyze", + "html_url": "https://github.com/dewyze", + "followers_url": "https://api.github.com/users/dewyze/followers", + "following_url": "https://api.github.com/users/dewyze/following{/other_user}", + "gists_url": "https://api.github.com/users/dewyze/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dewyze/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dewyze/subscriptions", + "organizations_url": "https://api.github.com/users/dewyze/orgs", + "repos_url": "https://api.github.com/users/dewyze/repos", + "events_url": "https://api.github.com/users/dewyze/events{/privacy}", + "received_events_url": "https://api.github.com/users/dewyze/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/dewyze/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/dewyze/nand2tetris", + "forks_url": "https://api.github.com/repos/dewyze/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/dewyze/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dewyze/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dewyze/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/dewyze/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/dewyze/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/dewyze/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/dewyze/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/dewyze/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/dewyze/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/dewyze/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dewyze/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dewyze/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dewyze/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dewyze/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dewyze/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/dewyze/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/dewyze/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/dewyze/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dewyze/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/dewyze/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dewyze/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dewyze/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dewyze/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dewyze/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/dewyze/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dewyze/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/dewyze/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dewyze/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/dewyze/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/dewyze/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dewyze/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dewyze/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dewyze/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/dewyze/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/dewyze/nand2tetris/deployments", + "created_at": "2016-03-21T01:29:51Z", + "updated_at": "2016-03-21T01:30:56Z", + "pushed_at": "2016-04-05T04:07:44Z", + "git_url": "git://github.com/dewyze/nand2tetris.git", + "ssh_url": "git@github.com:dewyze/nand2tetris.git", + "clone_url": "https://github.com/dewyze/nand2tetris.git", + "svn_url": "https://github.com/dewyze/nand2tetris", + "homepage": null, + "size": 155, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 54179875, + "name": "nand2tetris", + "full_name": "xavierzip/nand2tetris", + "owner": { + "login": "xavierzip", + "id": 2385917, + "avatar_url": "https://avatars.githubusercontent.com/u/2385917?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xavierzip", + "html_url": "https://github.com/xavierzip", + "followers_url": "https://api.github.com/users/xavierzip/followers", + "following_url": "https://api.github.com/users/xavierzip/following{/other_user}", + "gists_url": "https://api.github.com/users/xavierzip/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xavierzip/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xavierzip/subscriptions", + "organizations_url": "https://api.github.com/users/xavierzip/orgs", + "repos_url": "https://api.github.com/users/xavierzip/repos", + "events_url": "https://api.github.com/users/xavierzip/events{/privacy}", + "received_events_url": "https://api.github.com/users/xavierzip/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/xavierzip/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/xavierzip/nand2tetris", + "forks_url": "https://api.github.com/repos/xavierzip/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/xavierzip/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xavierzip/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xavierzip/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/xavierzip/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/xavierzip/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/xavierzip/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/xavierzip/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/xavierzip/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/xavierzip/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/xavierzip/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xavierzip/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xavierzip/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xavierzip/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xavierzip/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xavierzip/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/xavierzip/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/xavierzip/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/xavierzip/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/xavierzip/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/xavierzip/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xavierzip/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xavierzip/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xavierzip/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xavierzip/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/xavierzip/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xavierzip/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/xavierzip/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xavierzip/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/xavierzip/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/xavierzip/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xavierzip/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xavierzip/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xavierzip/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/xavierzip/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/xavierzip/nand2tetris/deployments", + "created_at": "2016-03-18T06:42:23Z", + "updated_at": "2016-03-21T05:55:15Z", + "pushed_at": "2016-04-03T12:35:06Z", + "git_url": "git://github.com/xavierzip/nand2tetris.git", + "ssh_url": "git@github.com:xavierzip/nand2tetris.git", + "clone_url": "https://github.com/xavierzip/nand2tetris.git", + "svn_url": "https://github.com/xavierzip/nand2tetris", + "homepage": null, + "size": 158, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 29760532, + "name": "nand2Tetris", + "full_name": "elauzel/nand2Tetris", + "owner": { + "login": "elauzel", + "id": 3578537, + "avatar_url": "https://avatars.githubusercontent.com/u/3578537?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/elauzel", + "html_url": "https://github.com/elauzel", + "followers_url": "https://api.github.com/users/elauzel/followers", + "following_url": "https://api.github.com/users/elauzel/following{/other_user}", + "gists_url": "https://api.github.com/users/elauzel/gists{/gist_id}", + "starred_url": "https://api.github.com/users/elauzel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/elauzel/subscriptions", + "organizations_url": "https://api.github.com/users/elauzel/orgs", + "repos_url": "https://api.github.com/users/elauzel/repos", + "events_url": "https://api.github.com/users/elauzel/events{/privacy}", + "received_events_url": "https://api.github.com/users/elauzel/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/elauzel/nand2Tetris", + "description": "From NAND gates to an assembler, VM, OS, compiler, high-level OO language, and game", + "fork": false, + "url": "https://api.github.com/repos/elauzel/nand2Tetris", + "forks_url": "https://api.github.com/repos/elauzel/nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/elauzel/nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/elauzel/nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/elauzel/nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/elauzel/nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/elauzel/nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/elauzel/nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/elauzel/nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/elauzel/nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/elauzel/nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/elauzel/nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/elauzel/nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/elauzel/nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/elauzel/nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/elauzel/nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/elauzel/nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/elauzel/nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/elauzel/nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/elauzel/nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/elauzel/nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/elauzel/nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/elauzel/nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/elauzel/nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/elauzel/nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/elauzel/nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/elauzel/nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/elauzel/nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/elauzel/nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/elauzel/nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/elauzel/nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/elauzel/nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/elauzel/nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/elauzel/nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/elauzel/nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/elauzel/nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/elauzel/nand2Tetris/deployments", + "created_at": "2015-01-24T00:56:52Z", + "updated_at": "2016-04-03T01:29:24Z", + "pushed_at": "2016-04-03T01:29:23Z", + "git_url": "git://github.com/elauzel/nand2Tetris.git", + "ssh_url": "git@github.com:elauzel/nand2Tetris.git", + "clone_url": "https://github.com/elauzel/nand2Tetris.git", + "svn_url": "https://github.com/elauzel/nand2Tetris", + "homepage": "", + "size": 770, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 56945023, + "name": "nand2tetris_projects", + "full_name": "mariana-LJ/nand2tetris_projects", + "owner": { + "login": "mariana-LJ", + "id": 6962666, + "avatar_url": "https://avatars.githubusercontent.com/u/6962666?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mariana-LJ", + "html_url": "https://github.com/mariana-LJ", + "followers_url": "https://api.github.com/users/mariana-LJ/followers", + "following_url": "https://api.github.com/users/mariana-LJ/following{/other_user}", + "gists_url": "https://api.github.com/users/mariana-LJ/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mariana-LJ/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mariana-LJ/subscriptions", + "organizations_url": "https://api.github.com/users/mariana-LJ/orgs", + "repos_url": "https://api.github.com/users/mariana-LJ/repos", + "events_url": "https://api.github.com/users/mariana-LJ/events{/privacy}", + "received_events_url": "https://api.github.com/users/mariana-LJ/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/mariana-LJ/nand2tetris_projects", + "description": "My code for the projects of the course From Nand to Tetris: Building a Computer from Scratch.", + "fork": false, + "url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects", + "forks_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/forks", + "keys_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/teams", + "hooks_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/hooks", + "issue_events_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/issues/events{/number}", + "events_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/events", + "assignees_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/assignees{/user}", + "branches_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/branches{/branch}", + "tags_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/tags", + "blobs_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/languages", + "stargazers_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/stargazers", + "contributors_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/contributors", + "subscribers_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/subscribers", + "subscription_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/subscription", + "commits_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/contents/{+path}", + "compare_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/merges", + "archive_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/downloads", + "issues_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/issues{/number}", + "pulls_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/labels{/name}", + "releases_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/releases{/id}", + "deployments_url": "https://api.github.com/repos/mariana-LJ/nand2tetris_projects/deployments", + "created_at": "2016-04-23T23:18:24Z", + "updated_at": "2016-04-23T23:23:44Z", + "pushed_at": "2016-04-23T23:23:42Z", + "git_url": "git://github.com/mariana-LJ/nand2tetris_projects.git", + "ssh_url": "git@github.com:mariana-LJ/nand2tetris_projects.git", + "clone_url": "https://github.com/mariana-LJ/nand2tetris_projects.git", + "svn_url": "https://github.com/mariana-LJ/nand2tetris_projects", + "homepage": null, + "size": 248, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 38838356, + "name": "Nadn2Tetris", + "full_name": "maru-n/Nadn2Tetris", + "owner": { + "login": "maru-n", + "id": 1583412, + "avatar_url": "https://avatars.githubusercontent.com/u/1583412?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/maru-n", + "html_url": "https://github.com/maru-n", + "followers_url": "https://api.github.com/users/maru-n/followers", + "following_url": "https://api.github.com/users/maru-n/following{/other_user}", + "gists_url": "https://api.github.com/users/maru-n/gists{/gist_id}", + "starred_url": "https://api.github.com/users/maru-n/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/maru-n/subscriptions", + "organizations_url": "https://api.github.com/users/maru-n/orgs", + "repos_url": "https://api.github.com/users/maru-n/repos", + "events_url": "https://api.github.com/users/maru-n/events{/privacy}", + "received_events_url": "https://api.github.com/users/maru-n/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/maru-n/Nadn2Tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/maru-n/Nadn2Tetris", + "forks_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/forks", + "keys_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/teams", + "hooks_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/events", + "assignees_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/tags", + "blobs_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/subscription", + "commits_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/merges", + "archive_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/downloads", + "issues_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/maru-n/Nadn2Tetris/deployments", + "created_at": "2015-07-09T18:35:12Z", + "updated_at": "2016-04-04T16:44:24Z", + "pushed_at": "2016-04-20T10:17:34Z", + "git_url": "git://github.com/maru-n/Nadn2Tetris.git", + "ssh_url": "git@github.com:maru-n/Nadn2Tetris.git", + "clone_url": "https://github.com/maru-n/Nadn2Tetris.git", + "svn_url": "https://github.com/maru-n/Nadn2Tetris", + "homepage": null, + "size": 265, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1, + "mirror_url": null, + "open_issues_count": 0, + "forks": 1, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 56413407, + "name": "nand2tetris", + "full_name": "eugenefedoto/nand2tetris", + "owner": { + "login": "eugenefedoto", + "id": 14006633, + "avatar_url": "https://avatars.githubusercontent.com/u/14006633?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/eugenefedoto", + "html_url": "https://github.com/eugenefedoto", + "followers_url": "https://api.github.com/users/eugenefedoto/followers", + "following_url": "https://api.github.com/users/eugenefedoto/following{/other_user}", + "gists_url": "https://api.github.com/users/eugenefedoto/gists{/gist_id}", + "starred_url": "https://api.github.com/users/eugenefedoto/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/eugenefedoto/subscriptions", + "organizations_url": "https://api.github.com/users/eugenefedoto/orgs", + "repos_url": "https://api.github.com/users/eugenefedoto/repos", + "events_url": "https://api.github.com/users/eugenefedoto/events{/privacy}", + "received_events_url": "https://api.github.com/users/eugenefedoto/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/eugenefedoto/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/eugenefedoto/nand2tetris", + "forks_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/eugenefedoto/nand2tetris/deployments", + "created_at": "2016-04-17T01:26:05Z", + "updated_at": "2016-04-17T15:14:28Z", + "pushed_at": "2016-04-27T19:01:44Z", + "git_url": "git://github.com/eugenefedoto/nand2tetris.git", + "ssh_url": "git@github.com:eugenefedoto/nand2tetris.git", + "clone_url": "https://github.com/eugenefedoto/nand2tetris.git", + "svn_url": "https://github.com/eugenefedoto/nand2tetris", + "homepage": null, + "size": 161, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 52641086, + "name": "nand2tetris", + "full_name": "lzh2nix/nand2tetris", + "owner": { + "login": "lzh2nix", + "id": 7421004, + "avatar_url": "https://avatars.githubusercontent.com/u/7421004?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lzh2nix", + "html_url": "https://github.com/lzh2nix", + "followers_url": "https://api.github.com/users/lzh2nix/followers", + "following_url": "https://api.github.com/users/lzh2nix/following{/other_user}", + "gists_url": "https://api.github.com/users/lzh2nix/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lzh2nix/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lzh2nix/subscriptions", + "organizations_url": "https://api.github.com/users/lzh2nix/orgs", + "repos_url": "https://api.github.com/users/lzh2nix/repos", + "events_url": "https://api.github.com/users/lzh2nix/events{/privacy}", + "received_events_url": "https://api.github.com/users/lzh2nix/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/lzh2nix/nand2tetris", + "description": "course implement of nand2tetris", + "fork": false, + "url": "https://api.github.com/repos/lzh2nix/nand2tetris", + "forks_url": "https://api.github.com/repos/lzh2nix/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/lzh2nix/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/lzh2nix/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/lzh2nix/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/lzh2nix/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/lzh2nix/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/lzh2nix/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/lzh2nix/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/lzh2nix/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/lzh2nix/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/lzh2nix/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/lzh2nix/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/lzh2nix/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/lzh2nix/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/lzh2nix/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/lzh2nix/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/lzh2nix/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/lzh2nix/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/lzh2nix/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/lzh2nix/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/lzh2nix/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/lzh2nix/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/lzh2nix/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/lzh2nix/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/lzh2nix/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/lzh2nix/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/lzh2nix/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/lzh2nix/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/lzh2nix/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/lzh2nix/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/lzh2nix/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/lzh2nix/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/lzh2nix/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/lzh2nix/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/lzh2nix/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/lzh2nix/nand2tetris/deployments", + "created_at": "2016-02-27T00:09:34Z", + "updated_at": "2016-02-27T00:13:14Z", + "pushed_at": "2016-04-08T23:34:28Z", + "git_url": "git://github.com/lzh2nix/nand2tetris.git", + "ssh_url": "git@github.com:lzh2nix/nand2tetris.git", + "clone_url": "https://github.com/lzh2nix/nand2tetris.git", + "svn_url": "https://github.com/lzh2nix/nand2tetris", + "homepage": null, + "size": 523, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 43603208, + "name": "NandToTetris", + "full_name": "kxiao1415/NandToTetris", + "owner": { + "login": "kxiao1415", + "id": 6510045, + "avatar_url": "https://avatars.githubusercontent.com/u/6510045?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kxiao1415", + "html_url": "https://github.com/kxiao1415", + "followers_url": "https://api.github.com/users/kxiao1415/followers", + "following_url": "https://api.github.com/users/kxiao1415/following{/other_user}", + "gists_url": "https://api.github.com/users/kxiao1415/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kxiao1415/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kxiao1415/subscriptions", + "organizations_url": "https://api.github.com/users/kxiao1415/orgs", + "repos_url": "https://api.github.com/users/kxiao1415/repos", + "events_url": "https://api.github.com/users/kxiao1415/events{/privacy}", + "received_events_url": "https://api.github.com/users/kxiao1415/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kxiao1415/NandToTetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/kxiao1415/NandToTetris", + "forks_url": "https://api.github.com/repos/kxiao1415/NandToTetris/forks", + "keys_url": "https://api.github.com/repos/kxiao1415/NandToTetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kxiao1415/NandToTetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kxiao1415/NandToTetris/teams", + "hooks_url": "https://api.github.com/repos/kxiao1415/NandToTetris/hooks", + "issue_events_url": "https://api.github.com/repos/kxiao1415/NandToTetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kxiao1415/NandToTetris/events", + "assignees_url": "https://api.github.com/repos/kxiao1415/NandToTetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kxiao1415/NandToTetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kxiao1415/NandToTetris/tags", + "blobs_url": "https://api.github.com/repos/kxiao1415/NandToTetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kxiao1415/NandToTetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kxiao1415/NandToTetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kxiao1415/NandToTetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kxiao1415/NandToTetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kxiao1415/NandToTetris/languages", + "stargazers_url": "https://api.github.com/repos/kxiao1415/NandToTetris/stargazers", + "contributors_url": "https://api.github.com/repos/kxiao1415/NandToTetris/contributors", + "subscribers_url": "https://api.github.com/repos/kxiao1415/NandToTetris/subscribers", + "subscription_url": "https://api.github.com/repos/kxiao1415/NandToTetris/subscription", + "commits_url": "https://api.github.com/repos/kxiao1415/NandToTetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kxiao1415/NandToTetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kxiao1415/NandToTetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kxiao1415/NandToTetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kxiao1415/NandToTetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kxiao1415/NandToTetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kxiao1415/NandToTetris/merges", + "archive_url": "https://api.github.com/repos/kxiao1415/NandToTetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kxiao1415/NandToTetris/downloads", + "issues_url": "https://api.github.com/repos/kxiao1415/NandToTetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kxiao1415/NandToTetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kxiao1415/NandToTetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kxiao1415/NandToTetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kxiao1415/NandToTetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kxiao1415/NandToTetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kxiao1415/NandToTetris/deployments", + "created_at": "2015-10-03T15:15:54Z", + "updated_at": "2016-05-09T12:49:55Z", + "pushed_at": "2016-05-13T17:53:30Z", + "git_url": "git://github.com/kxiao1415/NandToTetris.git", + "ssh_url": "git@github.com:kxiao1415/NandToTetris.git", + "clone_url": "https://github.com/kxiao1415/NandToTetris.git", + "svn_url": "https://github.com/kxiao1415/NandToTetris", + "homepage": null, + "size": 532, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 50959927, + "name": "Nand2Tetris", + "full_name": "christopherdumas/Nand2Tetris", + "owner": { + "login": "christopherdumas", + "id": 1920151, + "avatar_url": "https://avatars.githubusercontent.com/u/1920151?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/christopherdumas", + "html_url": "https://github.com/christopherdumas", + "followers_url": "https://api.github.com/users/christopherdumas/followers", + "following_url": "https://api.github.com/users/christopherdumas/following{/other_user}", + "gists_url": "https://api.github.com/users/christopherdumas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/christopherdumas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/christopherdumas/subscriptions", + "organizations_url": "https://api.github.com/users/christopherdumas/orgs", + "repos_url": "https://api.github.com/users/christopherdumas/repos", + "events_url": "https://api.github.com/users/christopherdumas/events{/privacy}", + "received_events_url": "https://api.github.com/users/christopherdumas/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/christopherdumas/Nand2Tetris", + "description": "My work on \"The Elements of Computing Systems\" book (nand2tetris.org). All of my code that I had a choice on is in Racket.", + "fork": false, + "url": "https://api.github.com/repos/christopherdumas/Nand2Tetris", + "forks_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/christopherdumas/Nand2Tetris/deployments", + "created_at": "2016-02-02T23:38:43Z", + "updated_at": "2016-02-02T23:39:27Z", + "pushed_at": "2016-05-13T21:04:13Z", + "git_url": "git://github.com/christopherdumas/Nand2Tetris.git", + "ssh_url": "git@github.com:christopherdumas/Nand2Tetris.git", + "clone_url": "https://github.com/christopherdumas/Nand2Tetris.git", + "svn_url": "https://github.com/christopherdumas/Nand2Tetris", + "homepage": null, + "size": 609, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 58115372, + "name": "nand2tetris", + "full_name": "cath0d/nand2tetris", + "owner": { + "login": "cath0d", + "id": 12177451, + "avatar_url": "https://avatars.githubusercontent.com/u/12177451?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cath0d", + "html_url": "https://github.com/cath0d", + "followers_url": "https://api.github.com/users/cath0d/followers", + "following_url": "https://api.github.com/users/cath0d/following{/other_user}", + "gists_url": "https://api.github.com/users/cath0d/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cath0d/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cath0d/subscriptions", + "organizations_url": "https://api.github.com/users/cath0d/orgs", + "repos_url": "https://api.github.com/users/cath0d/repos", + "events_url": "https://api.github.com/users/cath0d/events{/privacy}", + "received_events_url": "https://api.github.com/users/cath0d/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cath0d/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/cath0d/nand2tetris", + "forks_url": "https://api.github.com/repos/cath0d/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/cath0d/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cath0d/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cath0d/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/cath0d/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cath0d/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cath0d/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/cath0d/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cath0d/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cath0d/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/cath0d/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cath0d/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cath0d/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cath0d/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cath0d/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cath0d/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/cath0d/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cath0d/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cath0d/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cath0d/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/cath0d/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cath0d/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cath0d/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cath0d/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cath0d/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cath0d/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cath0d/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/cath0d/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cath0d/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/cath0d/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cath0d/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cath0d/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cath0d/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cath0d/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cath0d/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cath0d/nand2tetris/deployments", + "created_at": "2016-05-05T08:15:09Z", + "updated_at": "2016-05-05T08:30:02Z", + "pushed_at": "2016-05-09T22:29:40Z", + "git_url": "git://github.com/cath0d/nand2tetris.git", + "ssh_url": "git@github.com:cath0d/nand2tetris.git", + "clone_url": "https://github.com/cath0d/nand2tetris.git", + "svn_url": "https://github.com/cath0d/nand2tetris", + "homepage": null, + "size": 247, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 56733501, + "name": "nand2tetris", + "full_name": "HelloRambo/nand2tetris", + "owner": { + "login": "HelloRambo", + "id": 15681050, + "avatar_url": "https://avatars.githubusercontent.com/u/15681050?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/HelloRambo", + "html_url": "https://github.com/HelloRambo", + "followers_url": "https://api.github.com/users/HelloRambo/followers", + "following_url": "https://api.github.com/users/HelloRambo/following{/other_user}", + "gists_url": "https://api.github.com/users/HelloRambo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/HelloRambo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/HelloRambo/subscriptions", + "organizations_url": "https://api.github.com/users/HelloRambo/orgs", + "repos_url": "https://api.github.com/users/HelloRambo/repos", + "events_url": "https://api.github.com/users/HelloRambo/events{/privacy}", + "received_events_url": "https://api.github.com/users/HelloRambo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/HelloRambo/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/HelloRambo/nand2tetris", + "forks_url": "https://api.github.com/repos/HelloRambo/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/HelloRambo/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/HelloRambo/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/HelloRambo/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/HelloRambo/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/HelloRambo/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/HelloRambo/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/HelloRambo/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/HelloRambo/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/HelloRambo/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/HelloRambo/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/HelloRambo/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/HelloRambo/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/HelloRambo/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/HelloRambo/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/HelloRambo/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/HelloRambo/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/HelloRambo/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/HelloRambo/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/HelloRambo/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/HelloRambo/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/HelloRambo/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/HelloRambo/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/HelloRambo/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/HelloRambo/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/HelloRambo/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/HelloRambo/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/HelloRambo/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/HelloRambo/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/HelloRambo/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/HelloRambo/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/HelloRambo/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/HelloRambo/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/HelloRambo/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/HelloRambo/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/HelloRambo/nand2tetris/deployments", + "created_at": "2016-04-21T01:40:43Z", + "updated_at": "2016-04-21T01:43:18Z", + "pushed_at": "2016-05-05T13:42:33Z", + "git_url": "git://github.com/HelloRambo/nand2tetris.git", + "ssh_url": "git@github.com:HelloRambo/nand2tetris.git", + "clone_url": "https://github.com/HelloRambo/nand2tetris.git", + "svn_url": "https://github.com/HelloRambo/nand2tetris", + "homepage": null, + "size": 168, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 59108481, + "name": "nand2tetris", + "full_name": "kielthecoder/nand2tetris", + "owner": { + "login": "kielthecoder", + "id": 3535809, + "avatar_url": "https://avatars.githubusercontent.com/u/3535809?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kielthecoder", + "html_url": "https://github.com/kielthecoder", + "followers_url": "https://api.github.com/users/kielthecoder/followers", + "following_url": "https://api.github.com/users/kielthecoder/following{/other_user}", + "gists_url": "https://api.github.com/users/kielthecoder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kielthecoder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kielthecoder/subscriptions", + "organizations_url": "https://api.github.com/users/kielthecoder/orgs", + "repos_url": "https://api.github.com/users/kielthecoder/repos", + "events_url": "https://api.github.com/users/kielthecoder/events{/privacy}", + "received_events_url": "https://api.github.com/users/kielthecoder/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/kielthecoder/nand2tetris", + "description": "Coursework from The Elements of Computing Systems", + "fork": false, + "url": "https://api.github.com/repos/kielthecoder/nand2tetris", + "forks_url": "https://api.github.com/repos/kielthecoder/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/kielthecoder/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/kielthecoder/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/kielthecoder/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/kielthecoder/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/kielthecoder/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/kielthecoder/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/kielthecoder/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/kielthecoder/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/kielthecoder/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/kielthecoder/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/kielthecoder/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/kielthecoder/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/kielthecoder/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/kielthecoder/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/kielthecoder/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/kielthecoder/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/kielthecoder/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/kielthecoder/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/kielthecoder/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/kielthecoder/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/kielthecoder/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/kielthecoder/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/kielthecoder/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/kielthecoder/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/kielthecoder/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/kielthecoder/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/kielthecoder/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/kielthecoder/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/kielthecoder/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/kielthecoder/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/kielthecoder/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/kielthecoder/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/kielthecoder/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/kielthecoder/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/kielthecoder/nand2tetris/deployments", + "created_at": "2016-05-18T11:12:53Z", + "updated_at": "2016-05-18T11:39:10Z", + "pushed_at": "2016-05-18T20:22:36Z", + "git_url": "git://github.com/kielthecoder/nand2tetris.git", + "ssh_url": "git@github.com:kielthecoder/nand2tetris.git", + "clone_url": "https://github.com/kielthecoder/nand2tetris.git", + "svn_url": "https://github.com/kielthecoder/nand2tetris", + "homepage": null, + "size": 44, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 60982423, + "name": "nand2tetris", + "full_name": "simmonmt/nand2tetris", + "owner": { + "login": "simmonmt", + "id": 1419588, + "avatar_url": "https://avatars.githubusercontent.com/u/1419588?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/simmonmt", + "html_url": "https://github.com/simmonmt", + "followers_url": "https://api.github.com/users/simmonmt/followers", + "following_url": "https://api.github.com/users/simmonmt/following{/other_user}", + "gists_url": "https://api.github.com/users/simmonmt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/simmonmt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/simmonmt/subscriptions", + "organizations_url": "https://api.github.com/users/simmonmt/orgs", + "repos_url": "https://api.github.com/users/simmonmt/repos", + "events_url": "https://api.github.com/users/simmonmt/events{/privacy}", + "received_events_url": "https://api.github.com/users/simmonmt/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/simmonmt/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/simmonmt/nand2tetris", + "forks_url": "https://api.github.com/repos/simmonmt/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/simmonmt/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/simmonmt/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/simmonmt/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/simmonmt/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/simmonmt/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/simmonmt/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/simmonmt/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/simmonmt/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/simmonmt/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/simmonmt/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/simmonmt/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/simmonmt/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/simmonmt/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/simmonmt/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/simmonmt/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/simmonmt/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/simmonmt/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/simmonmt/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/simmonmt/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/simmonmt/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/simmonmt/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/simmonmt/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/simmonmt/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/simmonmt/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/simmonmt/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/simmonmt/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/simmonmt/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/simmonmt/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/simmonmt/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/simmonmt/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/simmonmt/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/simmonmt/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/simmonmt/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/simmonmt/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/simmonmt/nand2tetris/deployments", + "created_at": "2016-06-12T18:21:10Z", + "updated_at": "2016-06-12T18:33:21Z", + "pushed_at": "2016-06-12T18:33:19Z", + "git_url": "git://github.com/simmonmt/nand2tetris.git", + "ssh_url": "git@github.com:simmonmt/nand2tetris.git", + "clone_url": "https://github.com/simmonmt/nand2tetris.git", + "svn_url": "https://github.com/simmonmt/nand2tetris", + "homepage": null, + "size": 105, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 56410675, + "name": "nand2tetris", + "full_name": "grantbot/nand2tetris", + "owner": { + "login": "grantbot", + "id": 4099071, + "avatar_url": "https://avatars.githubusercontent.com/u/4099071?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/grantbot", + "html_url": "https://github.com/grantbot", + "followers_url": "https://api.github.com/users/grantbot/followers", + "following_url": "https://api.github.com/users/grantbot/following{/other_user}", + "gists_url": "https://api.github.com/users/grantbot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/grantbot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/grantbot/subscriptions", + "organizations_url": "https://api.github.com/users/grantbot/orgs", + "repos_url": "https://api.github.com/users/grantbot/repos", + "events_url": "https://api.github.com/users/grantbot/events{/privacy}", + "received_events_url": "https://api.github.com/users/grantbot/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/grantbot/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/grantbot/nand2tetris", + "forks_url": "https://api.github.com/repos/grantbot/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/grantbot/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/grantbot/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/grantbot/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/grantbot/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/grantbot/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/grantbot/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/grantbot/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/grantbot/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/grantbot/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/grantbot/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/grantbot/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/grantbot/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/grantbot/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/grantbot/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/grantbot/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/grantbot/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/grantbot/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/grantbot/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/grantbot/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/grantbot/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/grantbot/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/grantbot/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/grantbot/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/grantbot/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/grantbot/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/grantbot/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/grantbot/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/grantbot/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/grantbot/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/grantbot/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/grantbot/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/grantbot/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/grantbot/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/grantbot/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/grantbot/nand2tetris/deployments", + "created_at": "2016-04-16T23:44:42Z", + "updated_at": "2016-04-16T23:45:05Z", + "pushed_at": "2016-06-13T15:27:43Z", + "git_url": "git://github.com/grantbot/nand2tetris.git", + "ssh_url": "git@github.com:grantbot/nand2tetris.git", + "clone_url": "https://github.com/grantbot/nand2tetris.git", + "svn_url": "https://github.com/grantbot/nand2tetris", + "homepage": null, + "size": 514, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 58231737, + "name": "Nand2Tetris", + "full_name": "cthach/Nand2Tetris", + "owner": { + "login": "cthach", + "id": 12981621, + "avatar_url": "https://avatars.githubusercontent.com/u/12981621?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cthach", + "html_url": "https://github.com/cthach", + "followers_url": "https://api.github.com/users/cthach/followers", + "following_url": "https://api.github.com/users/cthach/following{/other_user}", + "gists_url": "https://api.github.com/users/cthach/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cthach/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cthach/subscriptions", + "organizations_url": "https://api.github.com/users/cthach/orgs", + "repos_url": "https://api.github.com/users/cthach/repos", + "events_url": "https://api.github.com/users/cthach/events{/privacy}", + "received_events_url": "https://api.github.com/users/cthach/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/cthach/Nand2Tetris", + "description": "A repository of projects assigned in the Nand to Tetris course by Professor Shimon Schocken and Professor Noam Nisan of the Hebrew University of Jerusalem", + "fork": false, + "url": "https://api.github.com/repos/cthach/Nand2Tetris", + "forks_url": "https://api.github.com/repos/cthach/Nand2Tetris/forks", + "keys_url": "https://api.github.com/repos/cthach/Nand2Tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/cthach/Nand2Tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/cthach/Nand2Tetris/teams", + "hooks_url": "https://api.github.com/repos/cthach/Nand2Tetris/hooks", + "issue_events_url": "https://api.github.com/repos/cthach/Nand2Tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/cthach/Nand2Tetris/events", + "assignees_url": "https://api.github.com/repos/cthach/Nand2Tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/cthach/Nand2Tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/cthach/Nand2Tetris/tags", + "blobs_url": "https://api.github.com/repos/cthach/Nand2Tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/cthach/Nand2Tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/cthach/Nand2Tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/cthach/Nand2Tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/cthach/Nand2Tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/cthach/Nand2Tetris/languages", + "stargazers_url": "https://api.github.com/repos/cthach/Nand2Tetris/stargazers", + "contributors_url": "https://api.github.com/repos/cthach/Nand2Tetris/contributors", + "subscribers_url": "https://api.github.com/repos/cthach/Nand2Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/cthach/Nand2Tetris/subscription", + "commits_url": "https://api.github.com/repos/cthach/Nand2Tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/cthach/Nand2Tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/cthach/Nand2Tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/cthach/Nand2Tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/cthach/Nand2Tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/cthach/Nand2Tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/cthach/Nand2Tetris/merges", + "archive_url": "https://api.github.com/repos/cthach/Nand2Tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/cthach/Nand2Tetris/downloads", + "issues_url": "https://api.github.com/repos/cthach/Nand2Tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/cthach/Nand2Tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/cthach/Nand2Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/cthach/Nand2Tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/cthach/Nand2Tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/cthach/Nand2Tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/cthach/Nand2Tetris/deployments", + "created_at": "2016-05-06T19:58:50Z", + "updated_at": "2016-06-05T03:16:48Z", + "pushed_at": "2016-06-05T03:19:52Z", + "git_url": "git://github.com/cthach/Nand2Tetris.git", + "ssh_url": "git@github.com:cthach/Nand2Tetris.git", + "clone_url": "https://github.com/cthach/Nand2Tetris.git", + "svn_url": "https://github.com/cthach/Nand2Tetris", + "homepage": "http://christopherthach.com", + "size": 135, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 57235969, + "name": "nand2tetris", + "full_name": "takosuke/nand2tetris", + "owner": { + "login": "takosuke", + "id": 640028, + "avatar_url": "https://avatars.githubusercontent.com/u/640028?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/takosuke", + "html_url": "https://github.com/takosuke", + "followers_url": "https://api.github.com/users/takosuke/followers", + "following_url": "https://api.github.com/users/takosuke/following{/other_user}", + "gists_url": "https://api.github.com/users/takosuke/gists{/gist_id}", + "starred_url": "https://api.github.com/users/takosuke/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/takosuke/subscriptions", + "organizations_url": "https://api.github.com/users/takosuke/orgs", + "repos_url": "https://api.github.com/users/takosuke/repos", + "events_url": "https://api.github.com/users/takosuke/events{/privacy}", + "received_events_url": "https://api.github.com/users/takosuke/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/takosuke/nand2tetris", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/takosuke/nand2tetris", + "forks_url": "https://api.github.com/repos/takosuke/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/takosuke/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/takosuke/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/takosuke/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/takosuke/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/takosuke/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/takosuke/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/takosuke/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/takosuke/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/takosuke/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/takosuke/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/takosuke/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/takosuke/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/takosuke/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/takosuke/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/takosuke/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/takosuke/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/takosuke/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/takosuke/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/takosuke/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/takosuke/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/takosuke/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/takosuke/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/takosuke/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/takosuke/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/takosuke/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/takosuke/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/takosuke/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/takosuke/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/takosuke/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/takosuke/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/takosuke/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/takosuke/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/takosuke/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/takosuke/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/takosuke/nand2tetris/deployments", + "created_at": "2016-04-27T18:19:59Z", + "updated_at": "2016-04-27T18:32:50Z", + "pushed_at": "2016-06-17T15:13:27Z", + "git_url": "git://github.com/takosuke/nand2tetris.git", + "ssh_url": "git@github.com:takosuke/nand2tetris.git", + "clone_url": "https://github.com/takosuke/nand2tetris.git", + "svn_url": "https://github.com/takosuke/nand2tetris", + "homepage": null, + "size": 182, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 53214713, + "name": "nand2tetris", + "full_name": "geekygirl76/nand2tetris", + "owner": { + "login": "geekygirl76", + "id": 6955218, + "avatar_url": "https://avatars.githubusercontent.com/u/6955218?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/geekygirl76", + "html_url": "https://github.com/geekygirl76", + "followers_url": "https://api.github.com/users/geekygirl76/followers", + "following_url": "https://api.github.com/users/geekygirl76/following{/other_user}", + "gists_url": "https://api.github.com/users/geekygirl76/gists{/gist_id}", + "starred_url": "https://api.github.com/users/geekygirl76/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/geekygirl76/subscriptions", + "organizations_url": "https://api.github.com/users/geekygirl76/orgs", + "repos_url": "https://api.github.com/users/geekygirl76/repos", + "events_url": "https://api.github.com/users/geekygirl76/events{/privacy}", + "received_events_url": "https://api.github.com/users/geekygirl76/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/geekygirl76/nand2tetris", + "description": "build a modern computer from ground up, including hardware, software, complier, OS, etc", + "fork": false, + "url": "https://api.github.com/repos/geekygirl76/nand2tetris", + "forks_url": "https://api.github.com/repos/geekygirl76/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/geekygirl76/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/geekygirl76/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/geekygirl76/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/geekygirl76/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/geekygirl76/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/geekygirl76/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/geekygirl76/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/geekygirl76/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/geekygirl76/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/geekygirl76/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/geekygirl76/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/geekygirl76/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/geekygirl76/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/geekygirl76/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/geekygirl76/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/geekygirl76/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/geekygirl76/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/geekygirl76/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/geekygirl76/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/geekygirl76/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/geekygirl76/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/geekygirl76/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/geekygirl76/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/geekygirl76/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/geekygirl76/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/geekygirl76/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/geekygirl76/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/geekygirl76/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/geekygirl76/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/geekygirl76/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/geekygirl76/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/geekygirl76/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/geekygirl76/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/geekygirl76/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/geekygirl76/nand2tetris/deployments", + "created_at": "2016-03-05T17:49:20Z", + "updated_at": "2016-06-19T17:02:28Z", + "pushed_at": "2016-06-19T17:02:26Z", + "git_url": "git://github.com/geekygirl76/nand2tetris.git", + "ssh_url": "git@github.com:geekygirl76/nand2tetris.git", + "clone_url": "https://github.com/geekygirl76/nand2tetris.git", + "svn_url": "https://github.com/geekygirl76/nand2tetris", + "homepage": null, + "size": 508, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 50663738, + "name": "nand2tetris", + "full_name": "benkoo/nand2tetris", + "owner": { + "login": "benkoo", + "id": 16219073, + "avatar_url": "https://avatars.githubusercontent.com/u/16219073?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/benkoo", + "html_url": "https://github.com/benkoo", + "followers_url": "https://api.github.com/users/benkoo/followers", + "following_url": "https://api.github.com/users/benkoo/following{/other_user}", + "gists_url": "https://api.github.com/users/benkoo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/benkoo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/benkoo/subscriptions", + "organizations_url": "https://api.github.com/users/benkoo/orgs", + "repos_url": "https://api.github.com/users/benkoo/repos", + "events_url": "https://api.github.com/users/benkoo/events{/privacy}", + "received_events_url": "https://api.github.com/users/benkoo/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/benkoo/nand2tetris", + "description": "Personal Exercise for the course: Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/benkoo/nand2tetris", + "forks_url": "https://api.github.com/repos/benkoo/nand2tetris/forks", + "keys_url": "https://api.github.com/repos/benkoo/nand2tetris/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/benkoo/nand2tetris/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/benkoo/nand2tetris/teams", + "hooks_url": "https://api.github.com/repos/benkoo/nand2tetris/hooks", + "issue_events_url": "https://api.github.com/repos/benkoo/nand2tetris/issues/events{/number}", + "events_url": "https://api.github.com/repos/benkoo/nand2tetris/events", + "assignees_url": "https://api.github.com/repos/benkoo/nand2tetris/assignees{/user}", + "branches_url": "https://api.github.com/repos/benkoo/nand2tetris/branches{/branch}", + "tags_url": "https://api.github.com/repos/benkoo/nand2tetris/tags", + "blobs_url": "https://api.github.com/repos/benkoo/nand2tetris/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/benkoo/nand2tetris/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/benkoo/nand2tetris/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/benkoo/nand2tetris/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/benkoo/nand2tetris/statuses/{sha}", + "languages_url": "https://api.github.com/repos/benkoo/nand2tetris/languages", + "stargazers_url": "https://api.github.com/repos/benkoo/nand2tetris/stargazers", + "contributors_url": "https://api.github.com/repos/benkoo/nand2tetris/contributors", + "subscribers_url": "https://api.github.com/repos/benkoo/nand2tetris/subscribers", + "subscription_url": "https://api.github.com/repos/benkoo/nand2tetris/subscription", + "commits_url": "https://api.github.com/repos/benkoo/nand2tetris/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/benkoo/nand2tetris/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/benkoo/nand2tetris/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/benkoo/nand2tetris/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/benkoo/nand2tetris/contents/{+path}", + "compare_url": "https://api.github.com/repos/benkoo/nand2tetris/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/benkoo/nand2tetris/merges", + "archive_url": "https://api.github.com/repos/benkoo/nand2tetris/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/benkoo/nand2tetris/downloads", + "issues_url": "https://api.github.com/repos/benkoo/nand2tetris/issues{/number}", + "pulls_url": "https://api.github.com/repos/benkoo/nand2tetris/pulls{/number}", + "milestones_url": "https://api.github.com/repos/benkoo/nand2tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/benkoo/nand2tetris/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/benkoo/nand2tetris/labels{/name}", + "releases_url": "https://api.github.com/repos/benkoo/nand2tetris/releases{/id}", + "deployments_url": "https://api.github.com/repos/benkoo/nand2tetris/deployments", + "created_at": "2016-01-29T13:23:30Z", + "updated_at": "2016-05-12T03:47:37Z", + "pushed_at": "2016-06-21T13:19:48Z", + "git_url": "git://github.com/benkoo/nand2tetris.git", + "ssh_url": "git@github.com:benkoo/nand2tetris.git", + "clone_url": "https://github.com/benkoo/nand2tetris.git", + "svn_url": "https://github.com/benkoo/nand2tetris", + "homepage": null, + "size": 56262, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 3.212811 + }, + { + "id": 16621283, + "name": "nand2tetris-project6", + "full_name": "davidsmithmke/nand2tetris-project6", + "owner": { + "login": "davidsmithmke", + "id": 3876502, + "avatar_url": "https://avatars.githubusercontent.com/u/3876502?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/davidsmithmke", + "html_url": "https://github.com/davidsmithmke", + "followers_url": "https://api.github.com/users/davidsmithmke/followers", + "following_url": "https://api.github.com/users/davidsmithmke/following{/other_user}", + "gists_url": "https://api.github.com/users/davidsmithmke/gists{/gist_id}", + "starred_url": "https://api.github.com/users/davidsmithmke/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/davidsmithmke/subscriptions", + "organizations_url": "https://api.github.com/users/davidsmithmke/orgs", + "repos_url": "https://api.github.com/users/davidsmithmke/repos", + "events_url": "https://api.github.com/users/davidsmithmke/events{/privacy}", + "received_events_url": "https://api.github.com/users/davidsmithmke/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/davidsmithmke/nand2tetris-project6", + "description": "Project 6 of Nand2Tetris", + "fork": false, + "url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6", + "forks_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/forks", + "keys_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/teams", + "hooks_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/hooks", + "issue_events_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/issues/events{/number}", + "events_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/events", + "assignees_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/assignees{/user}", + "branches_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/branches{/branch}", + "tags_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/tags", + "blobs_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/statuses/{sha}", + "languages_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/languages", + "stargazers_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/stargazers", + "contributors_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/contributors", + "subscribers_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/subscribers", + "subscription_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/subscription", + "commits_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/contents/{+path}", + "compare_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/merges", + "archive_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/downloads", + "issues_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/issues{/number}", + "pulls_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/pulls{/number}", + "milestones_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/milestones{/number}", + "notifications_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/labels{/name}", + "releases_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/releases{/id}", + "deployments_url": "https://api.github.com/repos/davidsmithmke/nand2tetris-project6/deployments", + "created_at": "2014-02-07T17:02:17Z", + "updated_at": "2014-02-09T01:28:24Z", + "pushed_at": "2014-02-08T21:25:45Z", + "git_url": "git://github.com/davidsmithmke/nand2tetris-project6.git", + "ssh_url": "git@github.com:davidsmithmke/nand2tetris-project6.git", + "clone_url": "https://github.com/davidsmithmke/nand2tetris-project6.git", + "svn_url": "https://github.com/davidsmithmke/nand2tetris-project6", + "homepage": "", + "size": 168, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 2.8274386 + }, + { + "id": 54303167, + "name": "CourseraNandToTetris1", + "full_name": "Anveshan3175/CourseraNandToTetris1", + "owner": { + "login": "Anveshan3175", + "id": 16539528, + "avatar_url": "https://avatars.githubusercontent.com/u/16539528?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Anveshan3175", + "html_url": "https://github.com/Anveshan3175", + "followers_url": "https://api.github.com/users/Anveshan3175/followers", + "following_url": "https://api.github.com/users/Anveshan3175/following{/other_user}", + "gists_url": "https://api.github.com/users/Anveshan3175/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Anveshan3175/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Anveshan3175/subscriptions", + "organizations_url": "https://api.github.com/users/Anveshan3175/orgs", + "repos_url": "https://api.github.com/users/Anveshan3175/repos", + "events_url": "https://api.github.com/users/Anveshan3175/events{/privacy}", + "received_events_url": "https://api.github.com/users/Anveshan3175/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/Anveshan3175/CourseraNandToTetris1", + "description": "How to build a computer", + "fork": false, + "url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1", + "forks_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/forks", + "keys_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/teams", + "hooks_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/hooks", + "issue_events_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/issues/events{/number}", + "events_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/events", + "assignees_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/assignees{/user}", + "branches_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/branches{/branch}", + "tags_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/tags", + "blobs_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/languages", + "stargazers_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/stargazers", + "contributors_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/contributors", + "subscribers_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/subscribers", + "subscription_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/subscription", + "commits_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/contents/{+path}", + "compare_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/merges", + "archive_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/downloads", + "issues_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/issues{/number}", + "pulls_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/labels{/name}", + "releases_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/releases{/id}", + "deployments_url": "https://api.github.com/repos/Anveshan3175/CourseraNandToTetris1/deployments", + "created_at": "2016-03-20T05:59:39Z", + "updated_at": "2016-03-20T14:03:42Z", + "pushed_at": "2016-03-29T02:49:34Z", + "git_url": "git://github.com/Anveshan3175/CourseraNandToTetris1.git", + "ssh_url": "git@github.com:Anveshan3175/CourseraNandToTetris1.git", + "clone_url": "https://github.com/Anveshan3175/CourseraNandToTetris1.git", + "svn_url": "https://github.com/Anveshan3175/CourseraNandToTetris1", + "homepage": null, + "size": 159, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 2.8274386 + }, + { + "id": 26594368, + "name": "nand2tetrisHDL-tutorial", + "full_name": "MikeBBarreiro/nand2tetrisHDL-tutorial", + "owner": { + "login": "MikeBBarreiro", + "id": 7136454, + "avatar_url": "https://avatars.githubusercontent.com/u/7136454?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MikeBBarreiro", + "html_url": "https://github.com/MikeBBarreiro", + "followers_url": "https://api.github.com/users/MikeBBarreiro/followers", + "following_url": "https://api.github.com/users/MikeBBarreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/MikeBBarreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MikeBBarreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MikeBBarreiro/subscriptions", + "organizations_url": "https://api.github.com/users/MikeBBarreiro/orgs", + "repos_url": "https://api.github.com/users/MikeBBarreiro/repos", + "events_url": "https://api.github.com/users/MikeBBarreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/MikeBBarreiro/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MikeBBarreiro/nand2tetrisHDL-tutorial", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial", + "forks_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/forks", + "keys_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/teams", + "hooks_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/hooks", + "issue_events_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/issues/events{/number}", + "events_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/events", + "assignees_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/assignees{/user}", + "branches_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/branches{/branch}", + "tags_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/tags", + "blobs_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/languages", + "stargazers_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/stargazers", + "contributors_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/contributors", + "subscribers_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/subscribers", + "subscription_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/subscription", + "commits_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/contents/{+path}", + "compare_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/merges", + "archive_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/downloads", + "issues_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/issues{/number}", + "pulls_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/labels{/name}", + "releases_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/releases{/id}", + "deployments_url": "https://api.github.com/repos/MikeBBarreiro/nand2tetrisHDL-tutorial/deployments", + "created_at": "2014-11-13T15:33:54Z", + "updated_at": "2014-11-13T15:34:39Z", + "pushed_at": "2014-11-13T15:34:38Z", + "git_url": "git://github.com/MikeBBarreiro/nand2tetrisHDL-tutorial.git", + "ssh_url": "git@github.com:MikeBBarreiro/nand2tetrisHDL-tutorial.git", + "clone_url": "https://github.com/MikeBBarreiro/nand2tetrisHDL-tutorial.git", + "svn_url": "https://github.com/MikeBBarreiro/nand2tetrisHDL-tutorial", + "homepage": null, + "size": 616, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 2.8248417 + }, + { + "id": 37904479, + "name": "From-Nand-to-Tetris-Part-I", + "full_name": "amrsekilly/From-Nand-to-Tetris-Part-I", + "owner": { + "login": "amrsekilly", + "id": 4142276, + "avatar_url": "https://avatars.githubusercontent.com/u/4142276?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/amrsekilly", + "html_url": "https://github.com/amrsekilly", + "followers_url": "https://api.github.com/users/amrsekilly/followers", + "following_url": "https://api.github.com/users/amrsekilly/following{/other_user}", + "gists_url": "https://api.github.com/users/amrsekilly/gists{/gist_id}", + "starred_url": "https://api.github.com/users/amrsekilly/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/amrsekilly/subscriptions", + "organizations_url": "https://api.github.com/users/amrsekilly/orgs", + "repos_url": "https://api.github.com/users/amrsekilly/repos", + "events_url": "https://api.github.com/users/amrsekilly/events{/privacy}", + "received_events_url": "https://api.github.com/users/amrsekilly/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/amrsekilly/From-Nand-to-Tetris-Part-I", + "description": "", + "fork": false, + "url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I", + "forks_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/forks", + "keys_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/teams", + "hooks_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/hooks", + "issue_events_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/issues/events{/number}", + "events_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/events", + "assignees_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/assignees{/user}", + "branches_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/branches{/branch}", + "tags_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/tags", + "blobs_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/statuses/{sha}", + "languages_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/languages", + "stargazers_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/stargazers", + "contributors_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/contributors", + "subscribers_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/subscribers", + "subscription_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/subscription", + "commits_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/contents/{+path}", + "compare_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/merges", + "archive_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/downloads", + "issues_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/issues{/number}", + "pulls_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/pulls{/number}", + "milestones_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/milestones{/number}", + "notifications_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/labels{/name}", + "releases_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/releases{/id}", + "deployments_url": "https://api.github.com/repos/amrsekilly/From-Nand-to-Tetris-Part-I/deployments", + "created_at": "2015-06-23T07:40:36Z", + "updated_at": "2015-06-23T07:42:02Z", + "pushed_at": "2015-06-23T07:42:01Z", + "git_url": "git://github.com/amrsekilly/From-Nand-to-Tetris-Part-I.git", + "ssh_url": "git@github.com:amrsekilly/From-Nand-to-Tetris-Part-I.git", + "clone_url": "https://github.com/amrsekilly/From-Nand-to-Tetris-Part-I.git", + "svn_url": "https://github.com/amrsekilly/From-Nand-to-Tetris-Part-I", + "homepage": null, + "size": 1164, + "stargazers_count": 0, + "watchers_count": 0, + "language": "Assembly", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "score": 2.4212928 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:22 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "354580", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "25", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"first\", ; rel=\"prev\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "bd82876e9bf04990f289ba22f246ee9b", + "x-github-request-id": "AE1408AB:F64F:5FC3B3B:5769F4B9" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/code?q=addClass+in:file+language:js+repo:jquery%2Fjquery&type=all&sort=updated&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 8, + "incomplete_results": false, + "items": [ + { + "name": "classes.js", + "path": "src/attributes/classes.js", + "sha": "2e8a8caba3568840e71eeb6fee802d091e0dc8b9", + "url": "https://api.github.com/repositories/167174/contents/src/attributes/classes.js?ref=305f193aa57014dc7d8fa0739a3fefd47166cd44", + "git_url": "https://api.github.com/repositories/167174/git/blobs/2e8a8caba3568840e71eeb6fee802d091e0dc8b9", + "html_url": "https://github.com/jquery/jquery/blob/305f193aa57014dc7d8fa0739a3fefd47166cd44/src/attributes/classes.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.5231211 + }, + { + "name": "attributes.js", + "path": "test/unit/attributes.js", + "sha": "771d31cb870040d060cca4c1e44502fc4169a8b3", + "url": "https://api.github.com/repositories/167174/contents/test/unit/attributes.js?ref=58c6ca9822afa42d3b40cca8edb0abe90a2bcb34", + "git_url": "https://api.github.com/repositories/167174/git/blobs/771d31cb870040d060cca4c1e44502fc4169a8b3", + "html_url": "https://github.com/jquery/jquery/blob/58c6ca9822afa42d3b40cca8edb0abe90a2bcb34/test/unit/attributes.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.34103322 + }, + { + "name": "effects.js", + "path": "test/unit/effects.js", + "sha": "eafe4b116eea4fd65de1621101d45fef914f05a2", + "url": "https://api.github.com/repositories/167174/contents/test/unit/effects.js?ref=58c6ca9822afa42d3b40cca8edb0abe90a2bcb34", + "git_url": "https://api.github.com/repositories/167174/git/blobs/eafe4b116eea4fd65de1621101d45fef914f05a2", + "html_url": "https://github.com/jquery/jquery/blob/58c6ca9822afa42d3b40cca8edb0abe90a2bcb34/test/unit/effects.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.19397852 + }, + { + "name": "basic.js", + "path": "test/unit/basic.js", + "sha": "5a2f5abc2b3293b7cd4e5418ec4c57cf21538597", + "url": "https://api.github.com/repositories/167174/contents/test/unit/basic.js?ref=055cb7534e2dcf7ee8ad145be83cb2d74b5331c7", + "git_url": "https://api.github.com/repositories/167174/git/blobs/5a2f5abc2b3293b7cd4e5418ec4c57cf21538597", + "html_url": "https://github.com/jquery/jquery/blob/055cb7534e2dcf7ee8ad145be83cb2d74b5331c7/test/unit/basic.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.16376281 + }, + { + "name": "qunit.js", + "path": "external/qunit/qunit.js", + "sha": "904943f088edfd3ecb0e7cf2cc70bc4a5876c3da", + "url": "https://api.github.com/repositories/167174/contents/external/qunit/qunit.js?ref=055cb7534e2dcf7ee8ad145be83cb2d74b5331c7", + "git_url": "https://api.github.com/repositories/167174/git/blobs/904943f088edfd3ecb0e7cf2cc70bc4a5876c3da", + "html_url": "https://github.com/jquery/jquery/blob/055cb7534e2dcf7ee8ad145be83cb2d74b5331c7/external/qunit/qunit.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.14796099 + }, + { + "name": "manipulation.js", + "path": "test/unit/manipulation.js", + "sha": "b8fdb8e79c583763243a7e8d8cf4ffac0801cc67", + "url": "https://api.github.com/repositories/167174/contents/test/unit/manipulation.js?ref=58c6ca9822afa42d3b40cca8edb0abe90a2bcb34", + "git_url": "https://api.github.com/repositories/167174/git/blobs/b8fdb8e79c583763243a7e8d8cf4ffac0801cc67", + "html_url": "https://github.com/jquery/jquery/blob/58c6ca9822afa42d3b40cca8edb0abe90a2bcb34/test/unit/manipulation.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.10462422 + }, + { + "name": "jquery-1.9.1.js", + "path": "test/data/jquery-1.9.1.js", + "sha": "80c97a226a9833674b06d341ca9f8e93389e9d33", + "url": "https://api.github.com/repositories/167174/contents/test/data/jquery-1.9.1.js?ref=055cb7534e2dcf7ee8ad145be83cb2d74b5331c7", + "git_url": "https://api.github.com/repositories/167174/git/blobs/80c97a226a9833674b06d341ca9f8e93389e9d33", + "html_url": "https://github.com/jquery/jquery/blob/055cb7534e2dcf7ee8ad145be83cb2d74b5331c7/test/data/jquery-1.9.1.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.05848672 + }, + { + "name": "css.js", + "path": "test/unit/css.js", + "sha": "ad8b808ffe0501f8de52ad955e6cb4809f5ac56d", + "url": "https://api.github.com/repositories/167174/contents/test/unit/css.js?ref=58c6ca9822afa42d3b40cca8edb0abe90a2bcb34", + "git_url": "https://api.github.com/repositories/167174/git/blobs/ad8b808ffe0501f8de52ad955e6cb4809f5ac56d", + "html_url": "https://github.com/jquery/jquery/blob/58c6ca9822afa42d3b40cca8edb0abe90a2bcb34/test/unit/css.js", + "repository": { + "id": 167174, + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "avatar_url": "https://avatars.githubusercontent.com/u/70142?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "releases_url": "https://api.github.com/repos/jquery/jquery/releases{/id}", + "deployments_url": "https://api.github.com/repos/jquery/jquery/deployments" + }, + "score": 0.05848672 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:23 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "34383", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "24", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "76d9828c7e4f1d910f7ba069e90ce976", + "x-github-request-id": "AE1408AB:F651:91B9F5F:5769F4BB" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/issues?q=windows+pip+label:bug+language:python+state:open+&sort=created&order=asc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 161, + "incomplete_results": false, + "items": [ + { + "url": "https://api.github.com/repos/sympy/sympy/issues/5259", + "repository_url": "https://api.github.com/repos/sympy/sympy", + "labels_url": "https://api.github.com/repos/sympy/sympy/issues/5259/labels{/name}", + "comments_url": "https://api.github.com/repos/sympy/sympy/issues/5259/comments", + "events_url": "https://api.github.com/repos/sympy/sympy/issues/5259/events", + "html_url": "https://github.com/sympy/sympy/issues/5259", + "id": 28950761, + "number": 5259, + "title": "List of dependencies", + "user": { + "login": "asmeurer", + "id": 71486, + "avatar_url": "https://avatars.githubusercontent.com/u/71486?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/asmeurer", + "html_url": "https://github.com/asmeurer", + "followers_url": "https://api.github.com/users/asmeurer/followers", + "following_url": "https://api.github.com/users/asmeurer/following{/other_user}", + "gists_url": "https://api.github.com/users/asmeurer/gists{/gist_id}", + "starred_url": "https://api.github.com/users/asmeurer/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/asmeurer/subscriptions", + "organizations_url": "https://api.github.com/users/asmeurer/orgs", + "repos_url": "https://api.github.com/users/asmeurer/repos", + "events_url": "https://api.github.com/users/asmeurer/events{/privacy}", + "received_events_url": "https://api.github.com/users/asmeurer/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/sympy/sympy/labels/bug", + "name": "bug", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/sympy/sympy/labels/Documentation", + "name": "Documentation", + "color": "c7def8" + }, + { + "url": "https://api.github.com/repos/sympy/sympy/labels/Easy%20to%20Fix", + "name": "Easy to Fix", + "color": "009800" + }, + { + "url": "https://api.github.com/repos/sympy/sympy/labels/imported", + "name": "imported", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/sympy/sympy/labels/valid", + "name": "valid", + "color": "d4c5f9" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "asmeurer", + "id": 71486, + "avatar_url": "https://avatars.githubusercontent.com/u/71486?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/asmeurer", + "html_url": "https://github.com/asmeurer", + "followers_url": "https://api.github.com/users/asmeurer/followers", + "following_url": "https://api.github.com/users/asmeurer/following{/other_user}", + "gists_url": "https://api.github.com/users/asmeurer/gists{/gist_id}", + "starred_url": "https://api.github.com/users/asmeurer/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/asmeurer/subscriptions", + "organizations_url": "https://api.github.com/users/asmeurer/orgs", + "repos_url": "https://api.github.com/users/asmeurer/repos", + "events_url": "https://api.github.com/users/asmeurer/events{/privacy}", + "received_events_url": "https://api.github.com/users/asmeurer/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 18, + "created_at": "2011-01-23T07:28:49Z", + "updated_at": "2015-12-23T16:27:21Z", + "closed_at": null, + "body": "```\r\nWe should include in the README, and probably in the docs somewhere too, a list of all the \"dependencies\" of SymPy. Now, obviously, SymPy's only dependency is Python, but there are several optional dependencies like IPython and gmpy that are not required but extent the capabilities of SymPy if they are installed. \r\n\r\nI am putting this here instead of just doing it and making a pull request because I don't know exactly how things work with things like numpy and scipy, and I also don't know if I am forgetting anything. So far, I have this:\r\n\r\n\"\"\"\r\nDependencies\r\n------------\r\n\r\nOne of the fundamental design decisions behind SymPy is that it should not have any external dependencies besides Python to install. Therefore, the only real \"dependency\" of SymPy is an installation of Python 2.4, 2.5, 2.6, or 2.7 (note that Python 2.4 support is deprecated and will no longer work in the next release).\r\n\r\nHowever, there are several packages that are not required to use SymPy, but that will enhance SymPy if they are installed. These packages are:\r\n\r\n- IPython ( http://ipython.scipy.org/moin/ ). IPython is a third party Python interactive shell that has many more features over the built-in Python interactive shell, such as tab-completetion and [what other important features should I mention here?]. If IPython is installed, isympy will automatically use it. Otherwise, it will fall back to the regular Python interactive shell. You can override this behavior by setting the -c option to isympy, like `isympy -c python`.\r\n\r\n- gmpy ( http://code.google.com/p/gmpy/ ). gmpy is a Python wrapper around the GNU Multiple Precision Arithmetic Library (GMP). If gmpy is installed, it may make certain operations in SymPy faster, because it will use gmpy as the ground type instead of the built-in Python ground types. If gmpy is not installed, it will fall back to the default Python ground types. You can override this behavior by setting the SYMPY_GROUND_TYPES environment variable, such as `SYMPY_GROUND_TYPES=python isympy`. [Note: this should be an option to isympy!]\r\n\r\n- Cython. [What exactly is the situation with Cython?]\r\n\r\n- Numpy. [Ditto]\r\n\r\n- Scipy. [Ditto]\r\n\r\n- [Code generation dependencies?]\r\n\r\n- [Other dependencies?]\r\n\r\nNote that mpmath and pyglet, our floating point and plotting libraries respectively, are included with SymPy, so it is unnecessary to install them. Indeed, SymPy will always use the version of mpmath or pyglet that comes with SymPy, even if a newer version is installed in the system. This is done for compatibility reasons.\r\n\r\n\"\"\"\r\n\r\nOK, the text in [] are comments. I need help from others writing the rest of this. Note that I do not want to include any development dependencies here (like Sphinx), because the user does not care about that (maybe we could have that list somewhere else in our development docs). \r\n\r\nBut basically for the others, explain what happens when they are installed and what happens when they are not (and how to override, if relevant). \r\n\r\nI just realized that the best way to do this would be through the wiki. So if anyone has anything to add to this, please do it at https://github.com/sympy/sympy/wiki/Dependencies . And then when we have it finished we can add it to the README and regular docs.\r\n```\r\nOriginal issue for #5259: http://code.google.com/p/sympy/issues/detail?id=2160\r\nOriginal author: https://code.google.com/u/asmeurer@gmail.com/\r\nReferenced issues: #4887\r\nOriginal owner: https://code.google.com/u/asmeurer@gmail.com/\r\n", + "score": 0.23398635 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/3", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/3/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/3/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/3/events", + "html_url": "https://github.com/pypa/pip/issues/3", + "id": 670386, + "number": 3, + "title": "pip install --editable and pip install clash for namespace packages", + "user": { + "login": "mitsuhiko", + "id": 7396, + "avatar_url": "https://avatars.githubusercontent.com/u/7396?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mitsuhiko", + "html_url": "https://github.com/mitsuhiko", + "followers_url": "https://api.github.com/users/mitsuhiko/followers", + "following_url": "https://api.github.com/users/mitsuhiko/following{/other_user}", + "gists_url": "https://api.github.com/users/mitsuhiko/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mitsuhiko/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mitsuhiko/subscriptions", + "organizations_url": "https://api.github.com/users/mitsuhiko/orgs", + "repos_url": "https://api.github.com/users/mitsuhiko/repos", + "events_url": "https://api.github.com/users/mitsuhiko/events{/privacy}", + "received_events_url": "https://api.github.com/users/mitsuhiko/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 29, + "created_at": "2011-03-14T01:04:31Z", + "updated_at": "2016-02-09T07:25:34Z", + "closed_at": null, + "body": "A namespace package installed editable and another one installed regularly don't work well together.", + "score": 7.6143475 + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/issues/10", + "repository_url": "https://api.github.com/repos/pypa/virtualenv", + "labels_url": "https://api.github.com/repos/pypa/virtualenv/issues/10/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/virtualenv/issues/10/comments", + "events_url": "https://api.github.com/repos/pypa/virtualenv/issues/10/events", + "html_url": "https://github.com/pypa/virtualenv/issues/10", + "id": 673430, + "number": 10, + "title": "Fails to install \"activate\" when running win32 Python from cygwin bash", + "user": { + "login": "vbabiy", + "id": 15382, + "avatar_url": "https://avatars.githubusercontent.com/u/15382?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vbabiy", + "html_url": "https://github.com/vbabiy", + "followers_url": "https://api.github.com/users/vbabiy/followers", + "following_url": "https://api.github.com/users/vbabiy/following{/other_user}", + "gists_url": "https://api.github.com/users/vbabiy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vbabiy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vbabiy/subscriptions", + "organizations_url": "https://api.github.com/users/vbabiy/orgs", + "repos_url": "https://api.github.com/users/vbabiy/repos", + "events_url": "https://api.github.com/users/vbabiy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vbabiy/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/bug", + "name": "bug", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/import", + "name": "import", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 4, + "created_at": "2011-03-14T21:29:13Z", + "updated_at": "2011-03-14T21:29:16Z", + "closed_at": null, + "body": "When running the win32 Python from cygwin's bash shell, \"virtualenv test\" installs \"test/Scripts/activate.bat\" but not \"test/Scripts/activate\". It looks like this is because \"OSTYPE\" is not set in the environment and so the check at virtualenv.py line 866 fails.\n\nAs a hack, I check both \"OSTYPE\" and \"TERM\" (diff attached). This works for me, but I don't know how universal it is. For example it won't work if running from inside the emacs shell (TERM=emacs).\n\nThis seems to work for easy_intall and pip in the new virtualenv, I'm not sure if there are other issues.\n\n---------------------------------------\n- Bitbucket: https://bitbucket.org/ianb/virtualenv/issue/22\n- Originally Reported By: \n- Originally Created At: 2010-02-06 21:36:32\n", + "score": 0.8024541 + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/issues/11", + "repository_url": "https://api.github.com/repos/pypa/virtualenv", + "labels_url": "https://api.github.com/repos/pypa/virtualenv/issues/11/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/virtualenv/issues/11/comments", + "events_url": "https://api.github.com/repos/pypa/virtualenv/issues/11/events", + "html_url": "https://github.com/pypa/virtualenv/issues/11", + "id": 673431, + "number": 11, + "title": "--relocatable does not point activate script to the correct path", + "user": { + "login": "vbabiy", + "id": 15382, + "avatar_url": "https://avatars.githubusercontent.com/u/15382?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vbabiy", + "html_url": "https://github.com/vbabiy", + "followers_url": "https://api.github.com/users/vbabiy/followers", + "following_url": "https://api.github.com/users/vbabiy/following{/other_user}", + "gists_url": "https://api.github.com/users/vbabiy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vbabiy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vbabiy/subscriptions", + "organizations_url": "https://api.github.com/users/vbabiy/orgs", + "repos_url": "https://api.github.com/users/vbabiy/repos", + "events_url": "https://api.github.com/users/vbabiy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vbabiy/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/bug", + "name": "bug", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/import", + "name": "import", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 9, + "created_at": "2011-03-14T21:29:17Z", + "updated_at": "2012-03-06T19:38:50Z", + "closed_at": null, + "body": "Using Ubuntu 10.04, --relocatable works if I directly invoke the python binary or the setuptools-generated scripts. However, bin/activate still reflects the old path:\n\n \n > pwd\n /home/jhammel\n > virtualenv.py foo\n New python executable in foo/bin/python\n Installing setuptools............done.\n > virtualenv.py --relocatable foo\n Making script foo/bin/easy_install relative\n Making script foo/bin/easy_install-2.6 relative\n Making script foo/bin/pip relative\n > mv foo bar\n > cd bar\n > . bin/activate\n (foo)> echo $VIRTUAL_ENV\n /home/jhammel/foo\n (foo)> which python\n /usr/bin/python\n (foo)>\n \n\nThis is because VIRTUAL_ENV is set to an absolute path in the script. Instead, this should be made relative when --relocatable is called. \n\nSince the activate script must be sourced, it is a bit more complicated to get the path than just (e.g.) `dirname $0`. The following seems to work in bash:\n\n \n command=$(history 1) # this should go at the top of the file\n parent_path() {\n DIRECTORY=$(dirname ${!#})\n cd $DIRECTORY/..\n pwd\n }\n VIRTUAL_ENV=$(parent_path $command)\n \n\nIf this meets with your approval, Ian, I'm glad to write a patch.\n\n---------------------------------------\n- Bitbucket: https://bitbucket.org/ianb/virtualenv/issue/37\n- Originally Reported By: Jeff Hammel\n- Originally Created At: 2010-05-05 19:48:03\n", + "score": 0.6847486 + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/issues/53", + "repository_url": "https://api.github.com/repos/pypa/virtualenv", + "labels_url": "https://api.github.com/repos/pypa/virtualenv/issues/53/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/virtualenv/issues/53/comments", + "events_url": "https://api.github.com/repos/pypa/virtualenv/issues/53/events", + "html_url": "https://github.com/pypa/virtualenv/issues/53", + "id": 673493, + "number": 53, + "title": "Whitespace in root path of virtualenv breaks scripts", + "user": { + "login": "vbabiy", + "id": 15382, + "avatar_url": "https://avatars.githubusercontent.com/u/15382?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vbabiy", + "html_url": "https://github.com/vbabiy", + "followers_url": "https://api.github.com/users/vbabiy/followers", + "following_url": "https://api.github.com/users/vbabiy/following{/other_user}", + "gists_url": "https://api.github.com/users/vbabiy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vbabiy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vbabiy/subscriptions", + "organizations_url": "https://api.github.com/users/vbabiy/orgs", + "repos_url": "https://api.github.com/users/vbabiy/repos", + "events_url": "https://api.github.com/users/vbabiy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vbabiy/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/bug", + "name": "bug", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/import", + "name": "import", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 16, + "created_at": "2011-03-14T21:35:00Z", + "updated_at": "2015-08-06T11:42:34Z", + "closed_at": null, + "body": "I'm not really sure if this is a distribute/setuptools/virtualenv but,\n\nIf I install virtualenv in\n\n**/var/lib/hudson/home/jobs/Minification WebHelpers/workspace/python/2.4**\n\nthen run ./bin/easy_install:\n\n**bash: ./bin/easy_install: \"/var/lib/hudson/home/jobs/Minification: bad interpreter: No such file or directory**\n\nSeems like something does not obey whitespace in path names correctly.\n\n---------------------------------------\n- Bitbucket: https://bitbucket.org/ianb/virtualenv/issue/38\n- Originally Reported By: Domen Kožar\n- Originally Created At: 2010-05-07 14:57:32\n", + "score": 0.5561179 + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/issues/72", + "repository_url": "https://api.github.com/repos/pypa/virtualenv", + "labels_url": "https://api.github.com/repos/pypa/virtualenv/issues/72/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/virtualenv/issues/72/comments", + "events_url": "https://api.github.com/repos/pypa/virtualenv/issues/72/events", + "html_url": "https://github.com/pypa/virtualenv/issues/72", + "id": 673526, + "number": 72, + "title": "Windows issue", + "user": { + "login": "vbabiy", + "id": 15382, + "avatar_url": "https://avatars.githubusercontent.com/u/15382?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vbabiy", + "html_url": "https://github.com/vbabiy", + "followers_url": "https://api.github.com/users/vbabiy/followers", + "following_url": "https://api.github.com/users/vbabiy/following{/other_user}", + "gists_url": "https://api.github.com/users/vbabiy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vbabiy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vbabiy/subscriptions", + "organizations_url": "https://api.github.com/users/vbabiy/orgs", + "repos_url": "https://api.github.com/users/vbabiy/repos", + "events_url": "https://api.github.com/users/vbabiy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vbabiy/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/bug", + "name": "bug", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/pypa/virtualenv/labels/import", + "name": "import", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 22, + "created_at": "2011-03-14T21:38:07Z", + "updated_at": "2014-01-28T16:07:22Z", + "closed_at": null, + "body": "I have Windows XP and Python 2.6. When I run the VirtualEnv script, here's what I get:\n\n \n #!text\n C:\\sandboxes>python virtualenv-new.py test-env\n New python executable in test-env\\Scripts\\python.exe\n Installing setuptools..............\n Complete output from command C:\\sandboxes\\test-env\\Scripts\\python.exe -c \"#!python\n \\\"\\\"\\\"Bootstrap setuptoo...\n \n \n \n \n \" --always-copy -U setuptools:\n Traceback (most recent call last):\n File \"\", line 278, in \n File \"\", line 210, in main\n File \"\", line 132, in download_setuptools\n File \"C:\\Python26\\Lib\\urllib2.py\", line 92, in \n import httplib\n File \"C:\\Python26\\Lib\\httplib.py\", line 70, in \n import socket\n File \"C:\\Python26\\Lib\\socket.py\", line 46, in \n import _socket\n ImportError: No module named _socket\n ----------------------------------------\n ...Installing setuptools...done.\n Traceback (most recent call last):\n File \"virtualenv-new.py\", line 1475, in \n main()\n File \"virtualenv-new.py\", line 528, in main\n use_distribute=options.use_distribute)\n File \"virtualenv-new.py\", line 618, in create_environment\n install_setuptools(py_executable, unzip=unzip_setuptools)\n File \"virtualenv-new.py\", line 361, in install_setuptools\n _install_req(py_executable, unzip)\n File \"virtualenv-new.py\", line 337, in _install_req\n cwd=cwd)\n File \"virtualenv-new.py\", line 589, in call_subprocess\n % (cmd_desc, proc.returncode))\n OSError: Command C:\\sandboxes\\test-env\\Scripts\\python.exe -c \"#!python\n \\\"\\\"\\\"Bootstrap setuptoo...\n \n \" --always-copy -U setuptools failed with error code 1\n \n \n\n\nIf I manually copy C:\\Python26\\DLLs to C:\\sandboxes\\test-env\\DLLs and re-run VirtualEnv script:\nC:\\sandboxes>python virtualenv-new.py test-env\n *** No error this time\n\n\n---------------------------------------\n- Bitbucket: https://bitbucket.org/ianb/virtualenv/issue/11\n- Originally Reported By: Anonymous\n- Originally Created At: 2009-11-14 22:19:35\n", + "score": 4.7436476 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/18", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/18/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/18/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/18/events", + "html_url": "https://github.com/pypa/pip/issues/18", + "id": 674438, + "number": 18, + "title": "--compiler build option on windows", + "user": { + "login": "vbabiy", + "id": 15382, + "avatar_url": "https://avatars.githubusercontent.com/u/15382?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vbabiy", + "html_url": "https://github.com/vbabiy", + "followers_url": "https://api.github.com/users/vbabiy/followers", + "following_url": "https://api.github.com/users/vbabiy/following{/other_user}", + "gists_url": "https://api.github.com/users/vbabiy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vbabiy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vbabiy/subscriptions", + "organizations_url": "https://api.github.com/users/vbabiy/orgs", + "repos_url": "https://api.github.com/users/vbabiy/repos", + "events_url": "https://api.github.com/users/vbabiy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vbabiy/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 17, + "created_at": "2011-03-15T06:00:07Z", + "updated_at": "2015-02-10T14:04:42Z", + "closed_at": null, + "body": "On Windows while installing from source code several packages (psycopg2, PIL, ...) emit an error:\n\n \n error: Unable to find vcvarsall.bat\n \n\nThe issue is being fixed by installing MinGW and using mingw32 compiler like this:\n \n setup.py install build --compiler=mingw32\n \n\nAs far as I see, it would be very good for PIP to have \"--build-option\" like \"--install-option\", so that one could use PIP with mingw32 compiler:\n \n pip install --build-option=\"--compiler=mingw32\" psycopg2\n \n\n---------------------------------------\n- Bitbucket: https://bitbucket.org/ianb/pip/issue/191\n- Originally Reported By: Anonymous\n- Originally Created At: 2010-11-23 03:20:59\n", + "score": 4.4473963 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/168", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/168/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/168/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/168/events", + "html_url": "https://github.com/pypa/pip/issues/168", + "id": 674610, + "number": 168, + "title": "test_freeze:test_freeze_with_local_option is broken", + "user": { + "login": "vbabiy", + "id": 15382, + "avatar_url": "https://avatars.githubusercontent.com/u/15382?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/vbabiy", + "html_url": "https://github.com/vbabiy", + "followers_url": "https://api.github.com/users/vbabiy/followers", + "following_url": "https://api.github.com/users/vbabiy/following{/other_user}", + "gists_url": "https://api.github.com/users/vbabiy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vbabiy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vbabiy/subscriptions", + "organizations_url": "https://api.github.com/users/vbabiy/orgs", + "repos_url": "https://api.github.com/users/vbabiy/repos", + "events_url": "https://api.github.com/users/vbabiy/events{/privacy}", + "received_events_url": "https://api.github.com/users/vbabiy/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/tests", + "name": "tests", + "color": "eb6420" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 4, + "created_at": "2011-03-15T06:25:55Z", + "updated_at": "2015-10-09T08:17:41Z", + "closed_at": null, + "body": "As you can see from the bottom of [[http://boostpro.com:8010/builders/win2003-server-builder/builds/77/steps/test/logs/stdio|this test log]], the test is failing on windows, but it's not specific to that platform: as far as I can tell it will also fail on Fedora. The common cause is that there is no `wsgiref.egg-info` in these installations, so `pkg_resources` doesn't find wsgiref when building its WorkingSet.\n\nFedora explicitly removes all the `.egg-info` files on line 558 of [[http://cvs.fedoraproject.org/viewvc/F-12/python/python.spec?revision=1.157&view=markup#558|their spec file]], however they also [[https://bugzilla.redhat.com/show_bug.cgi?id=414711|consider that a bug and have fixed it]], so it's not clear how best to address this issue. Workardounds just for Windows and old Fedora? Yuck.\n\n---------------------------------------\n- Bitbucket: https://bitbucket.org/ianb/pip/issue/110\n- Originally Reported By: Dave Abrahams\n- Originally Created At: 2010-05-03 18:00:51\n", + "score": 1.1060739 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/256", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/256/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/256/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/256/events", + "html_url": "https://github.com/pypa/pip/issues/256", + "id": 774910, + "number": 256, + "title": "Windows: pip's 'DOS' window closes automatically, error msgs lost", + "user": { + "login": "mcow", + "id": 731991, + "avatar_url": "https://avatars.githubusercontent.com/u/731991?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mcow", + "html_url": "https://github.com/mcow", + "followers_url": "https://api.github.com/users/mcow/followers", + "following_url": "https://api.github.com/users/mcow/following{/other_user}", + "gists_url": "https://api.github.com/users/mcow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mcow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mcow/subscriptions", + "organizations_url": "https://api.github.com/users/mcow/orgs", + "repos_url": "https://api.github.com/users/mcow/repos", + "events_url": "https://api.github.com/users/mcow/events{/privacy}", + "received_events_url": "https://api.github.com/users/mcow/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 4, + "created_at": "2011-04-15T17:08:40Z", + "updated_at": "2013-08-08T05:30:09Z", + "closed_at": null, + "body": "This may be specific to Windows Vista and Windows 7, I think. I am using 64-bit Windows 7; see also this page for similar problem with Vista:\r\n\r\nIt seems that Windows forces pip (and easy_install) to open into a new cmd shell, when run from a command shell. When the install program completes, the cmd shell closes. If there are any problems with the install, the program errors are lost, making troubleshooting difficult.\r\n\r\nThe hack of elevating to Administrator described there as working under Vista doesn't work for me on W7/64.\r\n\r\nI don't expect anyone to figure out how to keep Windows from launching into a new window, but, as a workaround: I'd like a command-line switch I can add to pip which would pause at the end of the install and print something like \"Hit any key to continue\" and then wait for that activity.", + "score": 6.7493997 + }, + { + "url": "https://api.github.com/repos/kartograph/kartograph.py/issues/21", + "repository_url": "https://api.github.com/repos/kartograph/kartograph.py", + "labels_url": "https://api.github.com/repos/kartograph/kartograph.py/issues/21/labels{/name}", + "comments_url": "https://api.github.com/repos/kartograph/kartograph.py/issues/21/comments", + "events_url": "https://api.github.com/repos/kartograph/kartograph.py/issues/21/events", + "html_url": "https://github.com/kartograph/kartograph.py/issues/21", + "id": 3607344, + "number": 21, + "title": "Make setup.py work on all major systems", + "user": { + "login": "gka", + "id": 617518, + "avatar_url": "https://avatars.githubusercontent.com/u/617518?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gka", + "html_url": "https://github.com/gka", + "followers_url": "https://api.github.com/users/gka/followers", + "following_url": "https://api.github.com/users/gka/following{/other_user}", + "gists_url": "https://api.github.com/users/gka/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gka/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gka/subscriptions", + "organizations_url": "https://api.github.com/users/gka/orgs", + "repos_url": "https://api.github.com/users/gka/repos", + "events_url": "https://api.github.com/users/gka/events{/privacy}", + "received_events_url": "https://api.github.com/users/gka/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/kartograph/kartograph.py/labels/bug", + "name": "bug", + "color": "e10c02" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/kartograph/kartograph.py/milestones/1", + "html_url": "https://github.com/kartograph/kartograph.py/milestones/1.0.0", + "labels_url": "https://api.github.com/repos/kartograph/kartograph.py/milestones/1/labels", + "id": 94761, + "number": 1, + "title": "1.0.0", + "description": "first stable release", + "creator": { + "login": "gka", + "id": 617518, + "avatar_url": "https://avatars.githubusercontent.com/u/617518?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gka", + "html_url": "https://github.com/gka", + "followers_url": "https://api.github.com/users/gka/followers", + "following_url": "https://api.github.com/users/gka/following{/other_user}", + "gists_url": "https://api.github.com/users/gka/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gka/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gka/subscriptions", + "organizations_url": "https://api.github.com/users/gka/orgs", + "repos_url": "https://api.github.com/users/gka/repos", + "events_url": "https://api.github.com/users/gka/events{/privacy}", + "received_events_url": "https://api.github.com/users/gka/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 9, + "closed_issues": 16, + "state": "open", + "created_at": "2012-03-10T23:50:43Z", + "updated_at": "2012-07-19T12:11:34Z", + "due_on": null, + "closed_at": null + }, + "comments": 7, + "created_at": "2012-03-12T07:58:01Z", + "updated_at": "2014-02-04T19:18:05Z", + "closed_at": null, + "body": "Currently setup.py install doesn't work on some systems (especially not on windows).", + "score": 0.821238 + }, + { + "url": "https://api.github.com/repos/mlt/schwinn810/issues/17", + "repository_url": "https://api.github.com/repos/mlt/schwinn810", + "labels_url": "https://api.github.com/repos/mlt/schwinn810/issues/17/labels{/name}", + "comments_url": "https://api.github.com/repos/mlt/schwinn810/issues/17/comments", + "events_url": "https://api.github.com/repos/mlt/schwinn810/issues/17/events", + "html_url": "https://github.com/mlt/schwinn810/issues/17", + "id": 5895906, + "number": 17, + "title": "Missing Cresta PM808 support", + "user": { + "login": "jomu", + "id": 2057910, + "avatar_url": "https://avatars.githubusercontent.com/u/2057910?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jomu", + "html_url": "https://github.com/jomu", + "followers_url": "https://api.github.com/users/jomu/followers", + "following_url": "https://api.github.com/users/jomu/following{/other_user}", + "gists_url": "https://api.github.com/users/jomu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jomu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jomu/subscriptions", + "organizations_url": "https://api.github.com/users/jomu/orgs", + "repos_url": "https://api.github.com/users/jomu/repos", + "events_url": "https://api.github.com/users/jomu/events{/privacy}", + "received_events_url": "https://api.github.com/users/jomu/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/mlt/schwinn810/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 16, + "created_at": "2012-07-28T20:21:50Z", + "updated_at": "2013-06-24T16:49:39Z", + "closed_at": null, + "body": "I bought a Cresta PM808 GPS watch and I think that the watch is from the NEWCO family. I can read data from the included software (from NEWCO) and from the MIO software. So I think my watch has the same communication like the MIO. I have installed the CP210x USB to UART Bridge and can communicate via this port.\n\nBut your software replies mistakes. Maybe the same problem like MIO.\n\nI made this on you advice:\n...\nAnother alternative is to leave everything as is and make sure you have a --debug option in your schwinn810.cmd . With that option you should get schwinn810.bin in your temporary folder like %USERPROFILE%\\Local Settings\\TEMP . See [2] for details. Apparently this file is incomplete but there is a chance that it has enough data for me to see what needs to be adjusted. Just send me that file. It is probably just 72 bytes long or alike.\n...\nSend you the schwinn810.bin via mail\n", + "score": 0.31309116 + }, + { + "url": "https://api.github.com/repos/pinax/django-forms-bootstrap/issues/3", + "repository_url": "https://api.github.com/repos/pinax/django-forms-bootstrap", + "labels_url": "https://api.github.com/repos/pinax/django-forms-bootstrap/issues/3/labels{/name}", + "comments_url": "https://api.github.com/repos/pinax/django-forms-bootstrap/issues/3/comments", + "events_url": "https://api.github.com/repos/pinax/django-forms-bootstrap/issues/3/events", + "html_url": "https://github.com/pinax/django-forms-bootstrap/issues/3", + "id": 6180723, + "number": 3, + "title": "Exception Type: \tTemplateSyntaxError Exception Value: \t Invalid filter: 'css_class'", + "user": { + "login": "camdenroberts", + "id": 2141331, + "avatar_url": "https://avatars.githubusercontent.com/u/2141331?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/camdenroberts", + "html_url": "https://github.com/camdenroberts", + "followers_url": "https://api.github.com/users/camdenroberts/followers", + "following_url": "https://api.github.com/users/camdenroberts/following{/other_user}", + "gists_url": "https://api.github.com/users/camdenroberts/gists{/gist_id}", + "starred_url": "https://api.github.com/users/camdenroberts/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/camdenroberts/subscriptions", + "organizations_url": "https://api.github.com/users/camdenroberts/orgs", + "repos_url": "https://api.github.com/users/camdenroberts/repos", + "events_url": "https://api.github.com/users/camdenroberts/events{/privacy}", + "received_events_url": "https://api.github.com/users/camdenroberts/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pinax/django-forms-bootstrap/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2012-08-12T23:12:37Z", + "updated_at": "2016-01-06T15:37:42Z", + "closed_at": null, + "body": "I am getting the following error:\n\nTemplate error\n\nIn template c:\\users\\wings\\fg-env\\lib\\site-packages\\django_forms_bootstrap\\templates\\bootstrap\\field.html, error at line 8\nInvalid filter: 'css_class'\n\n1 \t{% load bootstrap_tags %}\n2 \t\n3 \t{% if field.is_hidden %}\n4 \t{{ field }}\n5 \t{% else %}\n6 \t
\n7 \t\n8 \t{% if field.label and not field|css_class == \"checkboxinput\" %}\n\n\n\n\nTemplateSyntaxError at /naturel/naturelcalendar/calendar/month/calendar/\n\nInvalid filter: 'css_class'\n\nRequest Method: \tGET\nRequest URL: \thttp://localhost:8000/naturel/naturelcalendar/calendar/month/calendar/\nDjango Version: \t1.3.3\nException Type: \tTemplateSyntaxError\nException Value: \t\n\nInvalid filter: 'css_class'\n\nException Location: \tC:\\Users\\Wings\\fg-env\\lib\\site-packages\\django-1.3.3-py2.7.egg\\django\\template\\base.py in find_filter, line 320\nPython Executable: \tC:\\Users\\Wings\\fg-env\\Scripts\\python.exe\nPython Version: \t2.7.3\nPython Path: \t\n\n['C:\\\\Users\\\\Wings\\\\bumpmd\\\\apps',\n 'C:\\\\Users\\\\Wings\\\\bumpmd',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages\\\\setuptools-0.6c11-py2.7.egg',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages\\\\pip-1.1-py2.7.egg',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages\\\\django_avatar-1.0.5-py2.7.egg',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages\\\\pil-1.1.7-py2.7-win32.egg',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages\\\\django_crudgenerator-0.0.7-py2.7.egg',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages\\\\django-1.3.3-py2.7.egg',\n 'C:\\\\Windows\\\\system32\\\\python27.zip',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\DLLs',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\plat-win',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\lib-tk',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\Scripts',\n 'C:\\\\python27\\\\Lib',\n 'C:\\\\python27\\\\DLLs',\n 'C:\\\\python27\\\\Lib\\\\lib-tk',\n 'C:\\\\Users\\\\Wings\\\\fg-env',\n 'C:\\\\Users\\\\Wings\\\\fg-env\\\\lib\\\\site-packages']\n", + "score": 0.57478267 + }, + { + "url": "https://api.github.com/repos/dineshkummarc/Bespin/issues/2", + "repository_url": "https://api.github.com/repos/dineshkummarc/Bespin", + "labels_url": "https://api.github.com/repos/dineshkummarc/Bespin/issues/2/labels{/name}", + "comments_url": "https://api.github.com/repos/dineshkummarc/Bespin/issues/2/comments", + "events_url": "https://api.github.com/repos/dineshkummarc/Bespin/issues/2/events", + "html_url": "https://github.com/dineshkummarc/Bespin/issues/2", + "id": 6318826, + "number": 2, + "title": "build is not working for bespin on windows under VS 2008 and phalanger", + "user": { + "login": "dineshkummarc", + "id": 869803, + "avatar_url": "https://avatars.githubusercontent.com/u/869803?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dineshkummarc", + "html_url": "https://github.com/dineshkummarc", + "followers_url": "https://api.github.com/users/dineshkummarc/followers", + "following_url": "https://api.github.com/users/dineshkummarc/following{/other_user}", + "gists_url": "https://api.github.com/users/dineshkummarc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dineshkummarc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dineshkummarc/subscriptions", + "organizations_url": "https://api.github.com/users/dineshkummarc/orgs", + "repos_url": "https://api.github.com/users/dineshkummarc/repos", + "events_url": "https://api.github.com/users/dineshkummarc/events{/privacy}", + "received_events_url": "https://api.github.com/users/dineshkummarc/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/dineshkummarc/Bespin/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "dineshkummarc", + "id": 869803, + "avatar_url": "https://avatars.githubusercontent.com/u/869803?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dineshkummarc", + "html_url": "https://github.com/dineshkummarc", + "followers_url": "https://api.github.com/users/dineshkummarc/followers", + "following_url": "https://api.github.com/users/dineshkummarc/following{/other_user}", + "gists_url": "https://api.github.com/users/dineshkummarc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dineshkummarc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dineshkummarc/subscriptions", + "organizations_url": "https://api.github.com/users/dineshkummarc/orgs", + "repos_url": "https://api.github.com/users/dineshkummarc/repos", + "events_url": "https://api.github.com/users/dineshkummarc/events{/privacy}", + "received_events_url": "https://api.github.com/users/dineshkummarc/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 3, + "created_at": "2012-08-20T06:09:47Z", + "updated_at": "2012-08-20T10:44:12Z", + "closed_at": null, + "body": "build is not working for bespin", + "score": 1.7994952 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/727", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/727/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/727/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/727/events", + "html_url": "https://github.com/pypa/pip/issues/727", + "id": 8394400, + "number": 727, + "title": "`pip uninstall ...` removed Python's top level `dlls` folder on Windows", + "user": { + "login": "klonuo", + "id": 361447, + "avatar_url": "https://avatars.githubusercontent.com/u/361447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/klonuo", + "html_url": "https://github.com/klonuo", + "followers_url": "https://api.github.com/users/klonuo/followers", + "following_url": "https://api.github.com/users/klonuo/following{/other_user}", + "gists_url": "https://api.github.com/users/klonuo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/klonuo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/klonuo/subscriptions", + "organizations_url": "https://api.github.com/users/klonuo/orgs", + "repos_url": "https://api.github.com/users/klonuo/repos", + "events_url": "https://api.github.com/users/klonuo/events{/privacy}", + "received_events_url": "https://api.github.com/users/klonuo/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/setuptools", + "name": "setuptools", + "color": "0052cc" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 16, + "created_at": "2012-11-15T17:38:34Z", + "updated_at": "2013-08-08T01:58:58Z", + "closed_at": null, + "body": "I use pip when I can, and it worked for me great on both Windows and Ubuntu and both Python 2.x and Python 3.x. Today I had a problem and fortunately figured it out. Here is what happened:\n\nI installed **shapely** - `pip install shapely` and it did install fine, but at the end of the process **shapely** setup suggested that I better build it with **geos** dependency for speedup.\n\nOK, I thought to remove it and get this library - `pip uninstall shapely`. Terminal showed me a long list of files and I typed *yes*.\n\nNow before I urge myself to download **geos** I wanted to finish something I was working in Python, when I get this error:\n\n```python\nImportError: No module named _socket\n```\n\nAny script that accesses network stopped working. Hm..., never had this kind of problem before, so I ask Google and get list of various scenarios none fitting my situation. Also some suggested that after a while this error fixed by itself. So as a rule of least resistance I restarted Windows, but nothing changed.\n\nNow I'll spare myself, and you too, from writing what all I did, until I hit brake and thought to focus on what change I did to my system, after this error started to show. One of the things was that I did pip install/uninstall package, but I wasn't expected that to be a problem. Browsing my %temp% folder I found `pip-_9fyh6-uninstall` folder, and looking for a clue there I just realized it removed whole **dlls** top level directory from my Python 2.7 installation!\n\nThat was unpleasant surprise, but also a relief as just copying the folder back in it's place, Python started to work as it should\n\nI use pip 1.2.1 with Python 2.7.3 on Windows XP SP3 32bit.", + "score": 5.399519 + }, + { + "url": "https://api.github.com/repos/ipython/ipython/issues/2670", + "repository_url": "https://api.github.com/repos/ipython/ipython", + "labels_url": "https://api.github.com/repos/ipython/ipython/issues/2670/labels{/name}", + "comments_url": "https://api.github.com/repos/ipython/ipython/issues/2670/comments", + "events_url": "https://api.github.com/repos/ipython/ipython/issues/2670/events", + "html_url": "https://github.com/ipython/ipython/issues/2670", + "id": 9122091, + "number": 2670, + "title": "Readline won't load on pypy-2.0-beta1 win8-64bit", + "user": { + "login": "jansegre", + "id": 729870, + "avatar_url": "https://avatars.githubusercontent.com/u/729870?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jansegre", + "html_url": "https://github.com/jansegre", + "followers_url": "https://api.github.com/users/jansegre/followers", + "following_url": "https://api.github.com/users/jansegre/following{/other_user}", + "gists_url": "https://api.github.com/users/jansegre/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jansegre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jansegre/subscriptions", + "organizations_url": "https://api.github.com/users/jansegre/orgs", + "repos_url": "https://api.github.com/users/jansegre/repos", + "events_url": "https://api.github.com/users/jansegre/events{/privacy}", + "received_events_url": "https://api.github.com/users/jansegre/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/ipython/ipython/labels/bug", + "name": "bug", + "color": "d9596c" + }, + { + "url": "https://api.github.com/repos/ipython/ipython/labels/needs-info", + "name": "needs-info", + "color": "ededed" + }, + { + "url": "https://api.github.com/repos/ipython/ipython/labels/windows", + "name": "windows", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/ipython/ipython/milestones/9", + "html_url": "https://github.com/ipython/ipython/milestones/wishlist", + "labels_url": "https://api.github.com/repos/ipython/ipython/milestones/9/labels", + "id": 116694, + "number": 9, + "title": "wishlist", + "description": "Issues with no immediate plans for resolution.", + "creator": { + "login": "minrk", + "id": 151929, + "avatar_url": "https://avatars.githubusercontent.com/u/151929?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/minrk", + "html_url": "https://github.com/minrk", + "followers_url": "https://api.github.com/users/minrk/followers", + "following_url": "https://api.github.com/users/minrk/following{/other_user}", + "gists_url": "https://api.github.com/users/minrk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/minrk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/minrk/subscriptions", + "organizations_url": "https://api.github.com/users/minrk/orgs", + "repos_url": "https://api.github.com/users/minrk/repos", + "events_url": "https://api.github.com/users/minrk/events{/privacy}", + "received_events_url": "https://api.github.com/users/minrk/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 707, + "closed_issues": 0, + "state": "open", + "created_at": "2012-05-08T03:17:52Z", + "updated_at": "2016-06-16T12:28:23Z", + "due_on": null, + "closed_at": null + }, + "comments": 5, + "created_at": "2012-12-09T17:30:44Z", + "updated_at": "2016-04-04T22:32:03Z", + "closed_at": null, + "body": "I'm using Windows 8 64-bit with PyPy 2.0 beta1.\n\nI installed pip then 'pip install ipython'.\n\nInstallation went smooth but when I run ipython I get:\n\n```\nC:\\Users\\Jan>ipython\nC:\\Dev\\pypy\\site-packages\\IPython\\utils\\rlineimpl.py:80: UserWarning: Failed GetOutputFile warnings.warn(\"Failed GetOutputFile\")\nWARNING: Readline services not available or not loaded.WARNING: Proper color support under MS Windows requires the pyreadline library.\nYou can find it at:\nhttp://ipython.org/pyreadline.html\nGary's readline needs the ctypes module, from:\nhttp://starship.python.net/crew/theller/ctypes\n(Note that ctypes is already part of Python versions 2.5 and newer).\n\nDefaulting color scheme to 'NoColor'Python 2.7.3 (7e4f0faa3d51, Nov 22 2012, 10:06:18)\nType \"copyright\", \"credits\" or \"license\" for more information.\n\nIPython 0.13.1 -- An enhanced Interactive Python.\n? -> Introduction and overview of IPython's features.\n%quickref -> Quick reference.\nhelp -> Python's own help system.\nobject? -> Details about 'object', use 'object??' for extra details.\n...\n```\n\nMy PyPy is installed at C:\\Dev\\pypy, though that's probably not a problem.\n\nI have C:\\Dev\\pypy and C:\\Dev\\pypy\\bin on my path. I use it from cmd.\n\nI tried reinstalling pyreadline and installing cffi, but that didn't sovle it.\nI tried installing ctypes but that failed since I have VS2012 and probably need VS2008 instead.\n", + "score": 1.101128 + }, + { + "url": "https://api.github.com/repos/ianepperson/pyredminews/issues/9", + "repository_url": "https://api.github.com/repos/ianepperson/pyredminews", + "labels_url": "https://api.github.com/repos/ianepperson/pyredminews/issues/9/labels{/name}", + "comments_url": "https://api.github.com/repos/ianepperson/pyredminews/issues/9/comments", + "events_url": "https://api.github.com/repos/ianepperson/pyredminews/issues/9/events", + "html_url": "https://github.com/ianepperson/pyredminews/issues/9", + "id": 10725870, + "number": 9, + "title": "PyPI package install not working.", + "user": { + "login": "ianepperson", + "id": 903537, + "avatar_url": "https://avatars.githubusercontent.com/u/903537?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ianepperson", + "html_url": "https://github.com/ianepperson", + "followers_url": "https://api.github.com/users/ianepperson/followers", + "following_url": "https://api.github.com/users/ianepperson/following{/other_user}", + "gists_url": "https://api.github.com/users/ianepperson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ianepperson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ianepperson/subscriptions", + "organizations_url": "https://api.github.com/users/ianepperson/orgs", + "repos_url": "https://api.github.com/users/ianepperson/repos", + "events_url": "https://api.github.com/users/ianepperson/events{/privacy}", + "received_events_url": "https://api.github.com/users/ianepperson/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/ianepperson/pyredminews/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "ianepperson", + "id": 903537, + "avatar_url": "https://avatars.githubusercontent.com/u/903537?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ianepperson", + "html_url": "https://github.com/ianepperson", + "followers_url": "https://api.github.com/users/ianepperson/followers", + "following_url": "https://api.github.com/users/ianepperson/following{/other_user}", + "gists_url": "https://api.github.com/users/ianepperson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ianepperson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ianepperson/subscriptions", + "organizations_url": "https://api.github.com/users/ianepperson/orgs", + "repos_url": "https://api.github.com/users/ianepperson/repos", + "events_url": "https://api.github.com/users/ianepperson/events{/privacy}", + "received_events_url": "https://api.github.com/users/ianepperson/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 4, + "created_at": "2013-02-07T06:20:13Z", + "updated_at": "2013-02-18T17:08:58Z", + "closed_at": null, + "body": "Late tonight and I'm missing something. Need to chase it when I'm fresh.\r\n\r\nAny suggestions as to what I've done wrong are welcome.", + "score": 0.8741066 + }, + { + "url": "https://api.github.com/repos/Stiivi/brewery/issues/37", + "repository_url": "https://api.github.com/repos/Stiivi/brewery", + "labels_url": "https://api.github.com/repos/Stiivi/brewery/issues/37/labels{/name}", + "comments_url": "https://api.github.com/repos/Stiivi/brewery/issues/37/comments", + "events_url": "https://api.github.com/repos/Stiivi/brewery/issues/37/events", + "html_url": "https://github.com/Stiivi/brewery/issues/37", + "id": 11214305, + "number": 37, + "title": "XLRD Issue?", + "user": { + "login": "kjseefried", + "id": 2341596, + "avatar_url": "https://avatars.githubusercontent.com/u/2341596?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kjseefried", + "html_url": "https://github.com/kjseefried", + "followers_url": "https://api.github.com/users/kjseefried/followers", + "following_url": "https://api.github.com/users/kjseefried/following{/other_user}", + "gists_url": "https://api.github.com/users/kjseefried/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kjseefried/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kjseefried/subscriptions", + "organizations_url": "https://api.github.com/users/kjseefried/orgs", + "repos_url": "https://api.github.com/users/kjseefried/repos", + "events_url": "https://api.github.com/users/kjseefried/events{/privacy}", + "received_events_url": "https://api.github.com/users/kjseefried/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/Stiivi/brewery/labels/bug", + "name": "bug", + "color": "e10c02" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2013-02-20T20:39:20Z", + "updated_at": "2013-02-20T20:39:20Z", + "closed_at": null, + "body": "I have some code based on the example brewery \"merge 2 XLS files\". It works on MacOS in Python 2.7.2. When I move it to a new Windows 7 install (Python 2.7.3, brewery and python-excel installed via pip today), it fails with:\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\kseefried\\workspace\\Preparis User Data\\src\\merge-ng.py\", line 46, in \r\n src.initialize()\r\n File \"C:\\Python27\\lib\\site-packages\\brewery-0.8.0-py2.7.egg\\brewery\\ds\\xls_streams.py\", line 47, in initialize\r\n encoding_override=self.encoding)\r\n File \"C:\\Python27\\lib\\site-packages\\xlrd\\__init__.py\", line 443, in open_workbook\r\n ragged_rows=ragged_rows,\r\n File \"C:\\Python27\\lib\\site-packages\\xlrd\\book.py\", line 94, in open_workbook_xls\r\n biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)\r\n File \"C:\\Python27\\lib\\site-packages\\xlrd\\book.py\", line 1264, in getbof\r\n bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8])\r\n File \"C:\\Python27\\lib\\site-packages\\xlrd\\book.py\", line 1258, in bof_error\r\n raise XLRDError('Unsupported format, or corrupt file: ' + msg)\r\nxlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\\xd0\\xcf\\x11\\xe0\\xa1\\xb1'\r\n\r\nI have:\r\n\r\n- Verified the files are in fact valid XLS files.\r\n- Saved As Excel 95 files.\r\n- Create new spreadsheets outside of Excel using xlrd, cut-n-paste the data into the new spreadsheet.\r\n\r\nI'm at a loss as to how to move forward.\r\n", + "score": 0.6037355 + }, + { + "url": "https://api.github.com/repos/ipython/ipython/issues/3002", + "repository_url": "https://api.github.com/repos/ipython/ipython", + "labels_url": "https://api.github.com/repos/ipython/ipython/issues/3002/labels{/name}", + "comments_url": "https://api.github.com/repos/ipython/ipython/issues/3002/comments", + "events_url": "https://api.github.com/repos/ipython/ipython/issues/3002/events", + "html_url": "https://github.com/ipython/ipython/issues/3002", + "id": 11694765, + "number": 3002, + "title": "Right click collision for qtconsole in Windows", + "user": { + "login": "mayaa6", + "id": 3221154, + "avatar_url": "https://avatars.githubusercontent.com/u/3221154?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mayaa6", + "html_url": "https://github.com/mayaa6", + "followers_url": "https://api.github.com/users/mayaa6/followers", + "following_url": "https://api.github.com/users/mayaa6/following{/other_user}", + "gists_url": "https://api.github.com/users/mayaa6/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mayaa6/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mayaa6/subscriptions", + "organizations_url": "https://api.github.com/users/mayaa6/orgs", + "repos_url": "https://api.github.com/users/mayaa6/repos", + "events_url": "https://api.github.com/users/mayaa6/events{/privacy}", + "received_events_url": "https://api.github.com/users/mayaa6/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/ipython/ipython/labels/bug", + "name": "bug", + "color": "d9596c" + }, + { + "url": "https://api.github.com/repos/ipython/ipython/labels/qtconsole", + "name": "qtconsole", + "color": "027a10" + }, + { + "url": "https://api.github.com/repos/ipython/ipython/labels/windows", + "name": "windows", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/ipython/ipython/milestones/9", + "html_url": "https://github.com/ipython/ipython/milestones/wishlist", + "labels_url": "https://api.github.com/repos/ipython/ipython/milestones/9/labels", + "id": 116694, + "number": 9, + "title": "wishlist", + "description": "Issues with no immediate plans for resolution.", + "creator": { + "login": "minrk", + "id": 151929, + "avatar_url": "https://avatars.githubusercontent.com/u/151929?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/minrk", + "html_url": "https://github.com/minrk", + "followers_url": "https://api.github.com/users/minrk/followers", + "following_url": "https://api.github.com/users/minrk/following{/other_user}", + "gists_url": "https://api.github.com/users/minrk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/minrk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/minrk/subscriptions", + "organizations_url": "https://api.github.com/users/minrk/orgs", + "repos_url": "https://api.github.com/users/minrk/repos", + "events_url": "https://api.github.com/users/minrk/events{/privacy}", + "received_events_url": "https://api.github.com/users/minrk/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 707, + "closed_issues": 0, + "state": "open", + "created_at": "2012-05-08T03:17:52Z", + "updated_at": "2016-06-16T12:28:23Z", + "due_on": null, + "closed_at": null + }, + "comments": 11, + "created_at": "2013-03-06T01:01:13Z", + "updated_at": "2014-10-02T17:06:51Z", + "closed_at": null, + "body": "I am using ipython for python3.3 in 32bit Windows7. Started the ipython through\"ipython3 qtconsole --pylab=inline\", the qtconsole will collide immediately when I made a right click in no exception.", + "score": 2.7258947 + }, + { + "url": "https://api.github.com/repos/brunobord/django-mini-issue-tracker/issues/3", + "repository_url": "https://api.github.com/repos/brunobord/django-mini-issue-tracker", + "labels_url": "https://api.github.com/repos/brunobord/django-mini-issue-tracker/issues/3/labels{/name}", + "comments_url": "https://api.github.com/repos/brunobord/django-mini-issue-tracker/issues/3/comments", + "events_url": "https://api.github.com/repos/brunobord/django-mini-issue-tracker/issues/3/events", + "html_url": "https://github.com/brunobord/django-mini-issue-tracker/issues/3", + "id": 12500638, + "number": 3, + "title": "Can't install on windows via pip", + "user": { + "login": "brunobord", + "id": 25185, + "avatar_url": "https://avatars.githubusercontent.com/u/25185?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/brunobord", + "html_url": "https://github.com/brunobord", + "followers_url": "https://api.github.com/users/brunobord/followers", + "following_url": "https://api.github.com/users/brunobord/following{/other_user}", + "gists_url": "https://api.github.com/users/brunobord/gists{/gist_id}", + "starred_url": "https://api.github.com/users/brunobord/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/brunobord/subscriptions", + "organizations_url": "https://api.github.com/users/brunobord/orgs", + "repos_url": "https://api.github.com/users/brunobord/repos", + "events_url": "https://api.github.com/users/brunobord/events{/privacy}", + "received_events_url": "https://api.github.com/users/brunobord/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/brunobord/django-mini-issue-tracker/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2013-03-27T09:25:14Z", + "updated_at": "2013-03-27T09:25:14Z", + "closed_at": null, + "body": " pip install issuetracker\r\n\r\nlog:\r\n\r\n Downloading/unpacking issuetracker\r\n Downloading issuetracker-1.0.tar.gz\r\n Running setup.py egg_info for package issuetracker\r\n Traceback (most recent call last):\r\n File \"\", line 16, in \r\n File \"C:\\Users\\Bruno\\Envs\\EXP\\build\\issuetracker\\setup.py\", line 12, in \r\n long_description=open(join(dirname(__file__), 'README.rst')).read(),\r\n IOError: [Errno 2] No such file or directory: 'C:\\\\Users\\\\Bruno\\\\Envs\\\\EXP\\\\\r\n build\\\\issuetracker\\\\README.rst'\r\n Complete output from command python setup.py egg_info:\r\n Traceback (most recent call last):\r\n\r\n File \"\", line 16, in \r\n\r\n File \"C:\\Users\\Bruno\\Envs\\EXP\\build\\issuetracker\\setup.py\", line 12, in \r\n\r\n long_description=open(join(dirname(__file__), 'README.rst')).read(),\r\n\r\n IOError: [Errno 2] No such file or directory: 'C:\\\\Users\\\\Bruno\\\\Envs\\\\EXP\\\\buil\r\n d\\\\issuetracker\\\\README.rst'\r\n\r\n ----------------------------------------\r\n Command python setup.py egg_info failed with error code 1 in C:\\Users\\Bruno\\Envs\r\n \\EXP\\build\\issuetracker\r\n Storing complete log in C:\\Users\\Bruno\\pip\\pip.log", + "score": 8.5169325 + }, + { + "url": "https://api.github.com/repos/futuregrid/flask_cm/issues/17", + "repository_url": "https://api.github.com/repos/futuregrid/flask_cm", + "labels_url": "https://api.github.com/repos/futuregrid/flask_cm/issues/17/labels{/name}", + "comments_url": "https://api.github.com/repos/futuregrid/flask_cm/issues/17/comments", + "events_url": "https://api.github.com/repos/futuregrid/flask_cm/issues/17/events", + "html_url": "https://github.com/futuregrid/flask_cm/issues/17", + "id": 12820371, + "number": 17, + "title": "Requirement: Python SDK for Windows Azure", + "user": { + "login": "lee212", + "id": 1359020, + "avatar_url": "https://avatars.githubusercontent.com/u/1359020?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lee212", + "html_url": "https://github.com/lee212", + "followers_url": "https://api.github.com/users/lee212/followers", + "following_url": "https://api.github.com/users/lee212/following{/other_user}", + "gists_url": "https://api.github.com/users/lee212/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lee212/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lee212/subscriptions", + "organizations_url": "https://api.github.com/users/lee212/orgs", + "repos_url": "https://api.github.com/users/lee212/repos", + "events_url": "https://api.github.com/users/lee212/events{/privacy}", + "received_events_url": "https://api.github.com/users/lee212/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/futuregrid/flask_cm/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 6, + "created_at": "2013-04-04T21:07:33Z", + "updated_at": "2013-05-17T11:56:24Z", + "closed_at": null, + "body": "We are using Windows Azure in flask cm.\r\nGo and download SDKs in your local machine to execute 'azure' command tool on linux shell.\r\n[Downloads sdk](http://www.windowsazure.com/en-us/downloads/)\r\n\r\nWithout the installation of the SDK, users will face the following errors:\r\n```\r\nTraceback (most recent call last):\r\n File \"flask_cm/server.py\", line 10, in \r\n from cloudmesh.cloudmesh import cloudmesh\r\n File \"./cloudmesh/cloudmesh.py\", line 20, in \r\n from azure.cm_azure import cm_azure as azure \r\n File \"./cloudmesh/azure/cm_azure.py\", line 15, in \r\n from sh import azure as _azure\r\nImportError: cannot import name azure\r\n```\r\n\r\nWe probably are able to use client libraries by downloading it. ```pip install azure``` supports client libraries. Please refer: [Install Python and the SDK](http://www.windowsazure.com/en-us/develop/python/common-tasks/install-python/)\r\n", + "score": 3.1166403 + }, + { + "url": "https://api.github.com/repos/jdevesa/gists/issues/13", + "repository_url": "https://api.github.com/repos/jdevesa/gists", + "labels_url": "https://api.github.com/repos/jdevesa/gists/issues/13/labels{/name}", + "comments_url": "https://api.github.com/repos/jdevesa/gists/issues/13/comments", + "events_url": "https://api.github.com/repos/jdevesa/gists/issues/13/events", + "html_url": "https://github.com/jdevesa/gists/issues/13", + "id": 13922646, + "number": 13, + "title": "`gists list` fails with `ValueError: need more than 0 values to unpack`", + "user": { + "login": "maphew", + "id": 486200, + "avatar_url": "https://avatars.githubusercontent.com/u/486200?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/maphew", + "html_url": "https://github.com/maphew", + "followers_url": "https://api.github.com/users/maphew/followers", + "following_url": "https://api.github.com/users/maphew/following{/other_user}", + "gists_url": "https://api.github.com/users/maphew/gists{/gist_id}", + "starred_url": "https://api.github.com/users/maphew/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/maphew/subscriptions", + "organizations_url": "https://api.github.com/users/maphew/orgs", + "repos_url": "https://api.github.com/users/maphew/repos", + "events_url": "https://api.github.com/users/maphew/events{/privacy}", + "received_events_url": "https://api.github.com/users/maphew/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jdevesa/gists/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "jdevesa", + "id": 67581, + "avatar_url": "https://avatars.githubusercontent.com/u/67581?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jdevesa", + "html_url": "https://github.com/jdevesa", + "followers_url": "https://api.github.com/users/jdevesa/followers", + "following_url": "https://api.github.com/users/jdevesa/following{/other_user}", + "gists_url": "https://api.github.com/users/jdevesa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdevesa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdevesa/subscriptions", + "organizations_url": "https://api.github.com/users/jdevesa/orgs", + "repos_url": "https://api.github.com/users/jdevesa/repos", + "events_url": "https://api.github.com/users/jdevesa/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdevesa/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/jdevesa/gists/milestones/3", + "html_url": "https://github.com/jdevesa/gists/milestones/0.5", + "labels_url": "https://api.github.com/repos/jdevesa/gists/milestones/3/labels", + "id": 285297, + "number": 3, + "title": "0.5", + "description": "0.5 must be the last branch before the 1.0 release. It should have:\r\n\r\n* Test everythin as much coverage as posible.\r\n* Python 2/3 support\r\n* 'Clone' and 'Webopen' subcommands", + "creator": { + "login": "jdevesa", + "id": 67581, + "avatar_url": "https://avatars.githubusercontent.com/u/67581?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jdevesa", + "html_url": "https://github.com/jdevesa", + "followers_url": "https://api.github.com/users/jdevesa/followers", + "following_url": "https://api.github.com/users/jdevesa/following{/other_user}", + "gists_url": "https://api.github.com/users/jdevesa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdevesa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdevesa/subscriptions", + "organizations_url": "https://api.github.com/users/jdevesa/orgs", + "repos_url": "https://api.github.com/users/jdevesa/repos", + "events_url": "https://api.github.com/users/jdevesa/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdevesa/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 9, + "closed_issues": 2, + "state": "open", + "created_at": "2013-03-10T19:20:57Z", + "updated_at": "2014-11-14T08:56:50Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2013-05-03T06:00:51Z", + "updated_at": "2014-02-12T17:20:54Z", + "closed_at": null, + "body": "Hi, brand new gists user here. Installed with `pip install` on Windows 7, python 2.7.4.\r\n\r\n`gists authorize` was successful; I've verified the gists CLI shows up in my list of authorized apps via web profile, and that my home dir has a .gistsrc\r\n\r\n```\r\nB:\\>gists list\r\nTraceback (most recent call last):\r\n File \"B:\\o4w\\apps\\Python27\\Scripts\\\\gists\", line 5, in \r\n run()\r\n File \"B:\\o4w\\apps\\Python27\\lib\\site-packages\\gists\\gists.py\", line 86, in run\r\n result_formatted = args.formatter(result)\r\n File \"B:\\o4w\\apps\\Python27\\lib\\site-packages\\gists\\formatters.py\", line 125, i\r\nn format_list\r\n rows, columns = os.popen('stty size', 'r').read().split()\r\nValueError: need more than 0 values to unpack\r\n```\r\n\r\nThere should be 3 gists listed (https://gist.github.com/maphew)", + "score": 1.2308071 + }, + { + "url": "https://api.github.com/repos/lihaoyi/macropy/issues/32", + "repository_url": "https://api.github.com/repos/lihaoyi/macropy", + "labels_url": "https://api.github.com/repos/lihaoyi/macropy/issues/32/labels{/name}", + "comments_url": "https://api.github.com/repos/lihaoyi/macropy/issues/32/comments", + "events_url": "https://api.github.com/repos/lihaoyi/macropy/issues/32/events", + "html_url": "https://github.com/lihaoyi/macropy/issues/32", + "id": 14461232, + "number": 32, + "title": "Get MacroPy working on Python 3.4", + "user": { + "login": "lihaoyi", + "id": 934140, + "avatar_url": "https://avatars.githubusercontent.com/u/934140?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lihaoyi", + "html_url": "https://github.com/lihaoyi", + "followers_url": "https://api.github.com/users/lihaoyi/followers", + "following_url": "https://api.github.com/users/lihaoyi/following{/other_user}", + "gists_url": "https://api.github.com/users/lihaoyi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lihaoyi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lihaoyi/subscriptions", + "organizations_url": "https://api.github.com/users/lihaoyi/orgs", + "repos_url": "https://api.github.com/users/lihaoyi/repos", + "events_url": "https://api.github.com/users/lihaoyi/events{/privacy}", + "received_events_url": "https://api.github.com/users/lihaoyi/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/lihaoyi/macropy/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 42, + "created_at": "2013-05-17T16:45:39Z", + "updated_at": "2015-06-02T15:35:34Z", + "closed_at": null, + "body": "I have no idea how hard this will be, but MacroPy does not have many dependencies on the underlying runtime except for PEP302 and the `ast` library.\r\n\r\nSome of the ASTs look slightly different (e.g. functions can't have nested parameter lists, no `print` statement) and we may have to remove any `print` statements from the implementation code, but I don't imagine it will be very difficult or require big changes.", + "score": 0.17307626 + }, + { + "url": "https://api.github.com/repos/gtaylor/EVE-Market-Data-Uploader/issues/7", + "repository_url": "https://api.github.com/repos/gtaylor/EVE-Market-Data-Uploader", + "labels_url": "https://api.github.com/repos/gtaylor/EVE-Market-Data-Uploader/issues/7/labels{/name}", + "comments_url": "https://api.github.com/repos/gtaylor/EVE-Market-Data-Uploader/issues/7/comments", + "events_url": "https://api.github.com/repos/gtaylor/EVE-Market-Data-Uploader/issues/7/events", + "html_url": "https://github.com/gtaylor/EVE-Market-Data-Uploader/issues/7", + "id": 15771159, + "number": 7, + "title": "Crash while spawnin upload process on Windows 7", + "user": { + "login": "marandus", + "id": 2795896, + "avatar_url": "https://avatars.githubusercontent.com/u/2795896?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/marandus", + "html_url": "https://github.com/marandus", + "followers_url": "https://api.github.com/users/marandus/followers", + "following_url": "https://api.github.com/users/marandus/following{/other_user}", + "gists_url": "https://api.github.com/users/marandus/gists{/gist_id}", + "starred_url": "https://api.github.com/users/marandus/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/marandus/subscriptions", + "organizations_url": "https://api.github.com/users/marandus/orgs", + "repos_url": "https://api.github.com/users/marandus/repos", + "events_url": "https://api.github.com/users/marandus/events{/privacy}", + "received_events_url": "https://api.github.com/users/marandus/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/gtaylor/EVE-Market-Data-Uploader/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 19, + "created_at": "2013-06-19T22:04:26Z", + "updated_at": "2015-02-24T17:37:35Z", + "closed_at": null, + "body": "I installed EMDU on Windows 7 x86_64 following the instructions on your GitHub page. It starts up fine but then crashes when it tries to spawn the upload process stating it cannot find the emdu_console module.\r\nI start EMDU using the following command (the Python directory is in my PATH):\r\npython C:\\Python27\\Scripts\\emdu_console\r\n\r\nError message:\r\n2013-06-19 23:50:04,265: Got scan_endpoint http://upload.eve-emdr.com/upload/\r\n2013-06-19 23:50:07,680: Spawning upload process.\r\nTraceback (most recent call last):\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"\", line 1, in \r\n File \"C:\\Python27\\lib\\multiprocessing\\forking.py\", line 380, in main\r\n File \"C:\\Python27\\lib\\multiprocessing\\forking.py\", line 380, in main\r\n prepare(preparation_data)\r\n File \"C:\\Python27\\lib\\multiprocessing\\forking.py\", line 489, in prepare\r\n prepare(preparation_data)\r\n File \"C:\\Python27\\lib\\multiprocessing\\forking.py\", line 489, in prepare\r\n file, path_name, etc = imp.find_module(main_name, dirs)\r\nImportError: Nfile, path_name, etc = imp.find_module(main_name, dirs)\r\no module named emdu_consoleImportError\r\n: No module named emdu_console\r\n\r\nSpecs:\r\nWindows 7 x86_64\r\nPython 2.7.5 x86\r\nReverence 1.5.0 x86 for Python 2.7\r\nSetupTools 0.7.4\r\nWatchdog 0.6.0 for Python 2.7", + "score": 2.4202049 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/1140", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/1140/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/1140/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/1140/events", + "html_url": "https://github.com/pypa/pip/issues/1140", + "id": 18008354, + "number": 1140, + "title": "UnicodeEncodeError during zip install with Python2.7", + "user": { + "login": "simon-weber", + "id": 950506, + "avatar_url": "https://avatars.githubusercontent.com/u/950506?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/simon-weber", + "html_url": "https://github.com/simon-weber", + "followers_url": "https://api.github.com/users/simon-weber/followers", + "following_url": "https://api.github.com/users/simon-weber/following{/other_user}", + "gists_url": "https://api.github.com/users/simon-weber/gists{/gist_id}", + "starred_url": "https://api.github.com/users/simon-weber/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/simon-weber/subscriptions", + "organizations_url": "https://api.github.com/users/simon-weber/orgs", + "repos_url": "https://api.github.com/users/simon-weber/repos", + "events_url": "https://api.github.com/users/simon-weber/events{/privacy}", + "received_events_url": "https://api.github.com/users/simon-weber/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/encoding", + "name": "encoding", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 7, + "created_at": "2013-08-13T17:09:36Z", + "updated_at": "2015-05-26T08:31:39Z", + "closed_at": null, + "body": "[utils.split_leading_dir](https://github.com/pypa/pip/blob/e62ee5545bae8d92143afe5c7c45247f2aaf82f1/pip/util.py#L214) does `path = str(path)`, which will crash when encountering non-ascii.\r\n\r\nI can replicate this with the latest dev version by doing `pip install https://github.com/simon-weber/Unofficial-Google-Music-API/archive/develop.zip`, which is caused by my `audiotest_unicode_한글.mp3` file in that package.\r\n\r\nHere is a sample traceback:\r\n```\r\nException:\r\nTraceback (most recent call last):\r\n File \"/usr/lib/python2.7/site-packages/pip/basecommand.py\", line 139, in main\r\n status = self.run(options, args)\r\n File \"/usr/lib/python2.7/site-packages/pip/commands/install.py\", line 266, in run\r\n requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)\r\n File \"/usr/lib/python2.7/site-packages/pip/req.py\", line 1033, in prepare_files\r\n self.unpack_url(url, location, self.is_download)\r\n File \"/usr/lib/python2.7/site-packages/pip/req.py\", line 1161, in unpack_url\r\n retval = unpack_http_url(link, location, self.download_cache, self.download_dir)\r\n File \"/usr/lib/python2.7/site-packages/pip/download.py\", line 559, in unpack_http_url\r\n unpack_file(temp_location, location, content_type, link)\r\n File \"/usr/lib/python2.7/site-packages/pip/util.py\", line 587, in unpack_file\r\n unzip_file(filename, location, flatten=not filename.endswith('.pybundle'))\r\n File \"/usr/lib/python2.7/site-packages/pip/util.py\", line 478, in unzip_file\r\n leading = has_leading_dir(zip.namelist()) and flatten\r\n File \"/usr/lib/python2.7/site-packages/pip/util.py\", line 231, in has_leading_dir\r\n prefix, rest = split_leading_dir(path)\r\n File \"/usr/lib/python2.7/site-packages/pip/util.py\", line 215, in split_leading_dir\r\n path = str(path)\r\nUnicodeEncodeError: 'ascii' codec can't encode characters in position 69-70: ordinal not in range(128)\r\n```\r\n\r\n(originally posted as https://github.com/simon-weber/Unofficial-Google-Music-API/issues/159)", + "score": 1.3882172 + }, + { + "url": "https://api.github.com/repos/xdress/xdress/issues/92", + "repository_url": "https://api.github.com/repos/xdress/xdress", + "labels_url": "https://api.github.com/repos/xdress/xdress/issues/92/labels{/name}", + "comments_url": "https://api.github.com/repos/xdress/xdress/issues/92/comments", + "events_url": "https://api.github.com/repos/xdress/xdress/issues/92/events", + "html_url": "https://github.com/xdress/xdress/issues/92", + "id": 18243457, + "number": 92, + "title": "astparsers.gccxml_parse() failure on Windows", + "user": { + "login": "ibell", + "id": 1859947, + "avatar_url": "https://avatars.githubusercontent.com/u/1859947?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibell", + "html_url": "https://github.com/ibell", + "followers_url": "https://api.github.com/users/ibell/followers", + "following_url": "https://api.github.com/users/ibell/following{/other_user}", + "gists_url": "https://api.github.com/users/ibell/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibell/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibell/subscriptions", + "organizations_url": "https://api.github.com/users/ibell/orgs", + "repos_url": "https://api.github.com/users/ibell/repos", + "events_url": "https://api.github.com/users/ibell/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibell/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/xdress/xdress/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 10, + "created_at": "2013-08-19T14:47:13Z", + "updated_at": "2013-08-19T21:50:45Z", + "closed_at": null, + "body": "I'm trying to get started with xdress and having a hell of a time. I couldn't use pip to install and had to build from source. Same problem for installation of lxml. Ended up using Chris Gohlke's binaries. GCC-XML was smoother - binary installer available.\r\n\r\nFinally got things installed, but when I try either the mypack example or the example in the tests folder of the source, I get errors like:\r\n\r\n autoall: discovering API names\r\n autoall: no API names to discover!\r\n autodescribe: registering A\r\n autodescribe: registering B\r\n stlwrap: registering C++ standard library types\r\n autodescribe: scraping C/C++ APIs from source\r\n autodescribe: describing A\r\n [Errno 2] No such file or directory: 'build\\\\src/hoover.xml'\r\n\r\nWhat has gone wrong?\r\n\r\nBy the way, windows 7, 32-bit, py 2.7.\r\n\r\nThanks,\r\nIan", + "score": 3.0020185 + }, + { + "url": "https://api.github.com/repos/davesnowdon/naoutil/issues/22", + "repository_url": "https://api.github.com/repos/davesnowdon/naoutil", + "labels_url": "https://api.github.com/repos/davesnowdon/naoutil/issues/22/labels{/name}", + "comments_url": "https://api.github.com/repos/davesnowdon/naoutil/issues/22/comments", + "events_url": "https://api.github.com/repos/davesnowdon/naoutil/issues/22/events", + "html_url": "https://github.com/davesnowdon/naoutil/issues/22", + "id": 18822836, + "number": 22, + "title": "Exception when run on windows 7", + "user": { + "login": "davesnowdon", + "id": 575400, + "avatar_url": "https://avatars.githubusercontent.com/u/575400?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/davesnowdon", + "html_url": "https://github.com/davesnowdon", + "followers_url": "https://api.github.com/users/davesnowdon/followers", + "following_url": "https://api.github.com/users/davesnowdon/following{/other_user}", + "gists_url": "https://api.github.com/users/davesnowdon/gists{/gist_id}", + "starred_url": "https://api.github.com/users/davesnowdon/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/davesnowdon/subscriptions", + "organizations_url": "https://api.github.com/users/davesnowdon/orgs", + "repos_url": "https://api.github.com/users/davesnowdon/repos", + "events_url": "https://api.github.com/users/davesnowdon/events{/privacy}", + "received_events_url": "https://api.github.com/users/davesnowdon/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/davesnowdon/naoutil/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 4, + "created_at": "2013-08-31T13:41:20Z", + "updated_at": "2014-06-24T05:18:57Z", + "closed_at": null, + "body": "Looks like missing dependences for avahi\r\n\r\n Traceback (most recent call last):\r\n File \"src\\main\\python\\recorder\\main.py\", line 30, in \r\n from core import Robot, get_joints_for_chain, is_joint, get_sub_chains\r\n File \"C:\\Users\\dns\\dev\\nao\\nao-recorder\\src\\main\\python\\recorder\\core.py\", li\r\nne 12, in \r\n from naoutil import broker\r\n File \"C:\\Users\\dns\\dev\\nao\\nao-recorder\\src\\main\\python\\naoutil\\broker.py\", l\r\nine 14, in \r\n from naoutil import avahi\r\n File \"C:\\Users\\dns\\dev\\nao\\nao-recorder\\src\\main\\python\\naoutil\\avahi.py\", li\r\nne 11, in \r\n import dbus, gobject\r\n ImportError: No module named dbus", + "score": 2.9311569 + }, + { + "url": "https://api.github.com/repos/pybee/bugjar/issues/2", + "repository_url": "https://api.github.com/repos/pybee/bugjar", + "labels_url": "https://api.github.com/repos/pybee/bugjar/issues/2/labels{/name}", + "comments_url": "https://api.github.com/repos/pybee/bugjar/issues/2/comments", + "events_url": "https://api.github.com/repos/pybee/bugjar/issues/2/events", + "html_url": "https://github.com/pybee/bugjar/issues/2", + "id": 19137992, + "number": 2, + "title": "Bugjar doesn't seem to load on Windows 7", + "user": { + "login": "mstave", + "id": 1755543, + "avatar_url": "https://avatars.githubusercontent.com/u/1755543?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mstave", + "html_url": "https://github.com/mstave", + "followers_url": "https://api.github.com/users/mstave/followers", + "following_url": "https://api.github.com/users/mstave/following{/other_user}", + "gists_url": "https://api.github.com/users/mstave/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mstave/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mstave/subscriptions", + "organizations_url": "https://api.github.com/users/mstave/orgs", + "repos_url": "https://api.github.com/users/mstave/repos", + "events_url": "https://api.github.com/users/mstave/events{/privacy}", + "received_events_url": "https://api.github.com/users/mstave/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pybee/bugjar/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2013-09-07T04:14:55Z", + "updated_at": "2014-10-08T16:05:50Z", + "closed_at": null, + "body": "bugjar myapp.py \r\n\r\nListening on 0.0.0.0:3742 for a bugjar client\r\nWaiting for connection... [Errno 10061] No connection could be made because the target machine actively refused it\r\nWaiting for connection... [Errno 10061] No connection could be made because the target machine actively refused it\r\n\r\nAnd it just keeps repeating that. \r\nPython 2.7.3, used \"pip install bugjar\".\r\nI tried disabling firewall, etc. ", + "score": 2.8786016 + }, + { + "url": "https://api.github.com/repos/python-beaver/python-beaver/issues/186", + "repository_url": "https://api.github.com/repos/python-beaver/python-beaver", + "labels_url": "https://api.github.com/repos/python-beaver/python-beaver/issues/186/labels{/name}", + "comments_url": "https://api.github.com/repos/python-beaver/python-beaver/issues/186/comments", + "events_url": "https://api.github.com/repos/python-beaver/python-beaver/issues/186/events", + "html_url": "https://github.com/python-beaver/python-beaver/issues/186", + "id": 19194994, + "number": 186, + "title": "Memory leaks in beaver", + "user": { + "login": "skotchio", + "id": 1432812, + "avatar_url": "https://avatars.githubusercontent.com/u/1432812?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/skotchio", + "html_url": "https://github.com/skotchio", + "followers_url": "https://api.github.com/users/skotchio/followers", + "following_url": "https://api.github.com/users/skotchio/following{/other_user}", + "gists_url": "https://api.github.com/users/skotchio/gists{/gist_id}", + "starred_url": "https://api.github.com/users/skotchio/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/skotchio/subscriptions", + "organizations_url": "https://api.github.com/users/skotchio/orgs", + "repos_url": "https://api.github.com/users/skotchio/repos", + "events_url": "https://api.github.com/users/skotchio/events{/privacy}", + "received_events_url": "https://api.github.com/users/skotchio/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/python-beaver/python-beaver/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/python-beaver/python-beaver/milestones/4", + "html_url": "https://github.com/python-beaver/python-beaver/milestones/Release%2032", + "labels_url": "https://api.github.com/repos/python-beaver/python-beaver/milestones/4/labels", + "id": 460629, + "number": 4, + "title": "Release 32", + "description": "", + "creator": { + "login": "josegonzalez", + "id": 65675, + "avatar_url": "https://avatars.githubusercontent.com/u/65675?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/josegonzalez", + "html_url": "https://github.com/josegonzalez", + "followers_url": "https://api.github.com/users/josegonzalez/followers", + "following_url": "https://api.github.com/users/josegonzalez/following{/other_user}", + "gists_url": "https://api.github.com/users/josegonzalez/gists{/gist_id}", + "starred_url": "https://api.github.com/users/josegonzalez/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/josegonzalez/subscriptions", + "organizations_url": "https://api.github.com/users/josegonzalez/orgs", + "repos_url": "https://api.github.com/users/josegonzalez/repos", + "events_url": "https://api.github.com/users/josegonzalez/events{/privacy}", + "received_events_url": "https://api.github.com/users/josegonzalez/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 7, + "closed_issues": 1, + "state": "open", + "created_at": "2013-10-21T17:48:48Z", + "updated_at": "2015-12-03T21:51:07Z", + "due_on": null, + "closed_at": null + }, + "comments": 87, + "created_at": "2013-09-09T13:26:42Z", + "updated_at": "2016-02-19T06:55:21Z", + "closed_at": null, + "body": "I'm just started using of beaver on my production servers. I use upstart (https://github.com/josegonzalez/beaver/blob/master/contrib/beaver-upstart.conf) script for running beaver in background mode. The first time I just started beaver it took around 2% of RAM memory but after 3-5 days it takes 5% - 10% - 19%. It seems there is memory leaks. How can I detect and fix them?", + "score": 0.14866611 + }, + { + "url": "https://api.github.com/repos/PyCQA/pylint/issues/73", + "repository_url": "https://api.github.com/repos/PyCQA/pylint", + "labels_url": "https://api.github.com/repos/PyCQA/pylint/issues/73/labels{/name}", + "comments_url": "https://api.github.com/repos/PyCQA/pylint/issues/73/comments", + "events_url": "https://api.github.com/repos/PyCQA/pylint/issues/73/events", + "html_url": "https://github.com/PyCQA/pylint/issues/73", + "id": 121201511, + "number": 73, + "title": "pylint is unable to import distutils.version under virtualenv", + "user": { + "login": "pylint-bot", + "id": 16198247, + "avatar_url": "https://avatars.githubusercontent.com/u/16198247?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pylint-bot", + "html_url": "https://github.com/pylint-bot", + "followers_url": "https://api.github.com/users/pylint-bot/followers", + "following_url": "https://api.github.com/users/pylint-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/pylint-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pylint-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pylint-bot/subscriptions", + "organizations_url": "https://api.github.com/users/pylint-bot/orgs", + "repos_url": "https://api.github.com/users/pylint-bot/repos", + "events_url": "https://api.github.com/users/pylint-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/pylint-bot/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/PyCQA/pylint/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 11, + "created_at": "2013-09-11T07:39:59Z", + "updated_at": "2015-12-09T10:08:05Z", + "closed_at": null, + "body": "Originally reported by: **Chris Rebert (BitBucket: [cvrebert](http://bitbucket.org/cvrebert), GitHub: @cvrebert?)**\n\n----------------------------------------\n\nTestcase:\n```\n#!python\n\n#!/usr/bin/env python2.7\nimport distutils.version\n```\nOutput:\n```\n#!txt\n\n************* Module foo\nfoo.py:1: [C0111(missing-docstring), ] Missing module docstring\nfoo.py:2: [F0401(import-error), ] Unable to import 'distutils.version'\nfoo.py:2: [E0611(no-name-in-module), ] No name 'version' in module 'distutils'\nfoo.py:2: [W0611(unused-import), ] Unused import distutils\n```\nWhich doesn't agree with Python itself:\n```\n#!python\n\n$ python\nPython 2.7.3 (default, Apr 10 2013, 06:20:15) \n[GCC 4.6.3] on linux2\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import distutils.version\n>>> # no error\n```\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/logilab/pylint/issue/73\n", + "score": 0.35594437 + }, + { + "url": "https://api.github.com/repos/gak/pycallgraph/issues/119", + "repository_url": "https://api.github.com/repos/gak/pycallgraph", + "labels_url": "https://api.github.com/repos/gak/pycallgraph/issues/119/labels{/name}", + "comments_url": "https://api.github.com/repos/gak/pycallgraph/issues/119/comments", + "events_url": "https://api.github.com/repos/gak/pycallgraph/issues/119/events", + "html_url": "https://github.com/gak/pycallgraph/issues/119", + "id": 21875104, + "number": 119, + "title": "pycallgraph executable not created on install", + "user": { + "login": "roger-butler", + "id": 5819545, + "avatar_url": "https://avatars.githubusercontent.com/u/5819545?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/roger-butler", + "html_url": "https://github.com/roger-butler", + "followers_url": "https://api.github.com/users/roger-butler/followers", + "following_url": "https://api.github.com/users/roger-butler/following{/other_user}", + "gists_url": "https://api.github.com/users/roger-butler/gists{/gist_id}", + "starred_url": "https://api.github.com/users/roger-butler/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/roger-butler/subscriptions", + "organizations_url": "https://api.github.com/users/roger-butler/orgs", + "repos_url": "https://api.github.com/users/roger-butler/repos", + "events_url": "https://api.github.com/users/roger-butler/events{/privacy}", + "received_events_url": "https://api.github.com/users/roger-butler/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/gak/pycallgraph/labels/bug", + "name": "bug", + "color": "5319e7" + }, + { + "url": "https://api.github.com/repos/gak/pycallgraph/labels/distribution", + "name": "distribution", + "color": "eb6420" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "gak", + "id": 31338, + "avatar_url": "https://avatars.githubusercontent.com/u/31338?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gak", + "html_url": "https://github.com/gak", + "followers_url": "https://api.github.com/users/gak/followers", + "following_url": "https://api.github.com/users/gak/following{/other_user}", + "gists_url": "https://api.github.com/users/gak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gak/subscriptions", + "organizations_url": "https://api.github.com/users/gak/orgs", + "repos_url": "https://api.github.com/users/gak/repos", + "events_url": "https://api.github.com/users/gak/events{/privacy}", + "received_events_url": "https://api.github.com/users/gak/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 10, + "created_at": "2013-10-31T03:35:36Z", + "updated_at": "2015-06-03T16:27:53Z", + "closed_at": null, + "body": "I downloaded pycallgraph 1.0.1 and untarred it into a temporary directory. My Python environment is Enthought Canopy 1.1 on Windows 7. I ran easy_install pip to install pip, then pip install pycallgraph. Files were copied to my Python environment but not an executable. So I can run pycallgraph using the API but not the command line.\r\n\r\nAny ideas?", + "score": 1.9126669 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/1291", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/1291/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/1291/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/1291/events", + "html_url": "https://github.com/pypa/pip/issues/1291", + "id": 22047886, + "number": 1291, + "title": "pip install: UnicodeDecodeError on Windows", + "user": { + "login": "sscherfke", + "id": 511179, + "avatar_url": "https://avatars.githubusercontent.com/u/511179?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sscherfke", + "html_url": "https://github.com/sscherfke", + "followers_url": "https://api.github.com/users/sscherfke/followers", + "following_url": "https://api.github.com/users/sscherfke/following{/other_user}", + "gists_url": "https://api.github.com/users/sscherfke/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sscherfke/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sscherfke/subscriptions", + "organizations_url": "https://api.github.com/users/sscherfke/orgs", + "repos_url": "https://api.github.com/users/sscherfke/repos", + "events_url": "https://api.github.com/users/sscherfke/events{/privacy}", + "received_events_url": "https://api.github.com/users/sscherfke/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 21, + "created_at": "2013-11-04T12:18:33Z", + "updated_at": "2016-04-03T15:25:31Z", + "closed_at": null, + "body": "`pip install ` fails on Windows, if the projects description (e.g, its long description) is in utf-8.\r\n\r\n```\r\n(simpy) C:\\Users\\sscherfke\\Code\\simpy>pip install .\r\nUnpacking c:\\users\\sscherfke\\code\\simpy\r\n Running setup.py egg_info for package from file:///c%7C%5Cusers%5Csscherfke%5Ccode%5Csimpy\r\n\r\nCleaning up...\r\nException:\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\site-packages\\pip\\basecommand.py\", line 134, in main\r\n status = self.run(options, args)\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\site-packages\\pip\\commands\\install.py\", line 236, in run\r\n requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\site-packages\\pip\\req.py\", line 1134, in prepare_files\r\n req_to_install.run_egg_info()\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\site-packages\\pip\\req.py\", line 264, in run_egg_info\r\n \"%(Name)s==%(Version)s\" % self.pkg_info())\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\site-packages\\pip\\req.py\", line 357, in pkg_info\r\n data = self.egg_info_data('PKG-INFO')\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\site-packages\\pip\\req.py\", line 297, in egg_info_data\r\n data = fp.read()\r\n File \"C:\\Users\\sscherfke\\Envs\\simpy\\lib\\encodings\\cp1252.py\", line 23, in decode\r\n return codecs.charmap_decode(input,self.errors,decoding_table)[0]\r\nUnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 1235: character maps to \r\n\r\nStoring complete log in C:\\Users\\sscherfke\\pip\\pip.log\r\n```\r\n\r\nThe problem seems to be, that `req.egg_info_data()` (currently [line 317](https://github.com/pypa/pip/blob/develop/pip/req.py#L317) reads the egg-info created by `python setup.py egg_info` with the system's default encoding, which is not utf-8 on Windows (but on most *nix systems).\r\n\r\nWith Python 3, it should be no problem if you use utf-8 in your README/CHANGES/AUTHORS.txt (or whatever), so pip should read files as unicode by default:\r\n\r\nChanging lines 296 and 297 (in pip 1.4.1; 316 and 317 in the repo) to\r\n```\r\nfp = open(filename, 'rb')\r\ndata = fp.read().decode('utf-8')\r\n```\r\nfixes the problem for me.\r\n\r\nThe test setups was:\r\n- Windows 7 64bit\r\n- Python 3.3.1\r\n- pip 1.4.1\r\n- setuptools 0.9.8", + "score": 11.900766 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/1299", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/1299/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/1299/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/1299/events", + "html_url": "https://github.com/pypa/pip/issues/1299", + "id": 22147860, + "number": 1299, + "title": "windows in-place pip upgrades", + "user": { + "login": "qwcode", + "id": 1052224, + "avatar_url": "https://avatars.githubusercontent.com/u/1052224?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/qwcode", + "html_url": "https://github.com/qwcode", + "followers_url": "https://api.github.com/users/qwcode/followers", + "following_url": "https://api.github.com/users/qwcode/following{/other_user}", + "gists_url": "https://api.github.com/users/qwcode/gists{/gist_id}", + "starred_url": "https://api.github.com/users/qwcode/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/qwcode/subscriptions", + "organizations_url": "https://api.github.com/users/qwcode/orgs", + "repos_url": "https://api.github.com/users/qwcode/repos", + "events_url": "https://api.github.com/users/qwcode/events{/privacy}", + "received_events_url": "https://api.github.com/users/qwcode/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pypa/pip/milestones/10", + "html_url": "https://github.com/pypa/pip/milestones/Improve%20our%20User%20Experience", + "labels_url": "https://api.github.com/repos/pypa/pip/milestones/10/labels", + "id": 634715, + "number": 10, + "title": "Improve our User Experience", + "description": "", + "creator": { + "login": "dstufft", + "id": 145979, + "avatar_url": "https://avatars.githubusercontent.com/u/145979?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dstufft", + "html_url": "https://github.com/dstufft", + "followers_url": "https://api.github.com/users/dstufft/followers", + "following_url": "https://api.github.com/users/dstufft/following{/other_user}", + "gists_url": "https://api.github.com/users/dstufft/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dstufft/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dstufft/subscriptions", + "organizations_url": "https://api.github.com/users/dstufft/orgs", + "repos_url": "https://api.github.com/users/dstufft/repos", + "events_url": "https://api.github.com/users/dstufft/events{/privacy}", + "received_events_url": "https://api.github.com/users/dstufft/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 7, + "closed_issues": 8, + "state": "open", + "created_at": "2014-04-19T19:54:18Z", + "updated_at": "2015-09-03T04:56:40Z", + "due_on": null, + "closed_at": null + }, + "comments": 69, + "created_at": "2013-11-05T20:16:59Z", + "updated_at": "2016-05-14T22:24:34Z", + "closed_at": null, + "body": "not sure of the status of `pip install --ugrade pip` on windows.\r\n\r\nneed this for PEP453\r\n\r\n@pfmoore ?\r\n\r\nsee #188 for an old discussion on this.\r\n", + "score": 12.896364 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/130", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/130/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/130/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/130/events", + "html_url": "https://github.com/pypa/setuptools/issues/130", + "id": 144276468, + "number": 130, + "title": "install_data doesn't respect \"--prefix\"", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 24, + "created_at": "2014-01-05T13:38:59Z", + "updated_at": "2016-05-22T20:13:38Z", + "closed_at": null, + "body": "Originally reported by: **iElectric (Bitbucket: [iElectric](http://bitbucket.org/iElectric), GitHub: Unknown)**\n\n----------------------------------------\n\nChanging following line in https://bitbucket.org/pypa/setuptools/src/735202ca6848d58bc59022f85cde10af64a61a7e/setuptools/command/bdist_egg.py?at=default#cl-155:\n\n self.call_command('install_data', force=0, root=None)\n\nto \n \n self.call_command('install_data', force=0, root=self.bdist_dir)\n\nMakes data installation respect prefix directory\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/130\n", + "score": 0.33953378 + }, + { + "url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/46", + "repository_url": "https://api.github.com/repos/lionheart/django-pyodbc", + "labels_url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/46/labels{/name}", + "comments_url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/46/comments", + "events_url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/46/events", + "html_url": "https://github.com/lionheart/django-pyodbc/issues/46", + "id": 26093406, + "number": 46, + "title": "Data source name not found, and no default driver specified", + "user": { + "login": "dan-klasson", + "id": 1314838, + "avatar_url": "https://avatars.githubusercontent.com/u/1314838?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dan-klasson", + "html_url": "https://github.com/dan-klasson", + "followers_url": "https://api.github.com/users/dan-klasson/followers", + "following_url": "https://api.github.com/users/dan-klasson/following{/other_user}", + "gists_url": "https://api.github.com/users/dan-klasson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dan-klasson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dan-klasson/subscriptions", + "organizations_url": "https://api.github.com/users/dan-klasson/orgs", + "repos_url": "https://api.github.com/users/dan-klasson/repos", + "events_url": "https://api.github.com/users/dan-klasson/events{/privacy}", + "received_events_url": "https://api.github.com/users/dan-klasson/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/lionheart/django-pyodbc/labels/bug", + "name": "bug", + "color": "f8579a" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2014-01-22T14:32:42Z", + "updated_at": "2014-09-25T02:15:16Z", + "closed_at": null, + "body": "I'm using Ubuntu 12.04 server, Django 1.5.5, pyodbc-3.0.7 and I am trying to connect to a MSSQL 2005 server. I've installed django-pyodbc through pip and modified my settings.py like so:\r\n\r\n DATABASES = {\r\n 'default': {\r\n 'ENGINE': 'django_pyodbc', \r\n 'NAME': 'db_name', \r\n 'USER': 'user_name', \r\n 'PASSWORD': 'password', \r\n 'HOST': 'AB131\\A_INS01', \r\n 'PORT': '', \r\n 'OPTIONS': {\r\n 'host_is_server': True\r\n },\r\n }\r\n }\r\n\r\nBut when I try to run syncdb I get:\r\n\r\n Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')\r\n\r\nThe ODBC driver installed on the Windows machine is:\r\n\r\n SQL Server 6.01.7601.17514 SQLSRV32.DLL\r\n\r\nWhat else do I need to do? Are there any other drivers that I need to install on either the Linux or Windows machine?\r\n\r\n", + "score": 0.8282917 + }, + { + "url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/47", + "repository_url": "https://api.github.com/repos/lionheart/django-pyodbc", + "labels_url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/47/labels{/name}", + "comments_url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/47/comments", + "events_url": "https://api.github.com/repos/lionheart/django-pyodbc/issues/47/events", + "html_url": "https://github.com/lionheart/django-pyodbc/issues/47", + "id": 26301799, + "number": 47, + "title": "Python 3 unicode problem in CursorWrapper.format_sql.", + "user": { + "login": "Jafula", + "id": 434720, + "avatar_url": "https://avatars.githubusercontent.com/u/434720?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Jafula", + "html_url": "https://github.com/Jafula", + "followers_url": "https://api.github.com/users/Jafula/followers", + "following_url": "https://api.github.com/users/Jafula/following{/other_user}", + "gists_url": "https://api.github.com/users/Jafula/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jafula/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jafula/subscriptions", + "organizations_url": "https://api.github.com/users/Jafula/orgs", + "repos_url": "https://api.github.com/users/Jafula/repos", + "events_url": "https://api.github.com/users/Jafula/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jafula/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/lionheart/django-pyodbc/labels/bug", + "name": "bug", + "color": "f8579a" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 10, + "created_at": "2014-01-25T21:45:33Z", + "updated_at": "2016-04-25T18:38:37Z", + "closed_at": null, + "body": "Hello,\r\n\r\nI have been trying to get django-pyodbc working to connect to a SQL Server 2000 MSDE instance. I am using Django 1.6.1, Python 3.3 on Ubuntu 12.04.\r\n\r\nTrying to do a simple operation such as \r\n\r\n```\r\nfrom django.db import connections\r\ncursor = connections['default'].cursor()\r\nresult = cursor.execute('select * from customer')\r\n```\r\n\r\ncauses the following to happen\r\n\r\n```\r\nFile \"/.../python3.3/dist-packages/django_pyodbc/base.py\", line 410, in execute\r\n return self.cursor.execute(sql, params)\r\nTypeError: The first argument to execute must be a string or unicode query.\r\n```\r\n\r\nSomeone else experienced the same problem except they were running on Windows. They asked a question on StackOverflow here:\r\n\r\nhttp://stackoverflow.com/questions/21272895/cant-query-sql-server-from-django-using-django-pyodbc\r\n\r\nI tracked the problem down to line 367 in base.py:\r\n\r\n```\r\n sql = sql.encode('utf-8')\r\n```\r\n\r\n```\r\n def format_sql(self, sql, n_params=None):\r\n if not self.driver_supports_utf8 and isinstance(sql, text_type):\r\n # Older FreeTDS (and other ODBC drivers?) don't support Unicode yet, so\r\n # we need to encode the SQL clause itself in utf-8\r\n sql = sql.encode('utf-8')\r\n```\r\n\r\nIt seems that in Python 3, str.encode returns a bytes which is not a string type causing the TypeError to occur.\r\n\r\nSee this comment on StackOverflow for information on how the string/bytes changed from Python 2 to 3.\r\n\r\nhttp://stackoverflow.com/a/11596746/1040695\r\n\r\nThis only seems to occur for the first query getting the product version. I need to do more analysis to see if happens later on.\r\n\r\n```\r\n File \"/.../python3.3/dist-packages/django/db/backends/__init__.py\", line 159, in cursor\r\n cursor = util.CursorWrapper(self._cursor(), self)\r\n File \"/.../python3.3/dist-packages/django_pyodbc/base.py\", line 290, in _cursor\r\n if self.ops.sql_server_ver < 2005:\r\n File \"/.../python3.3/dist-packages/django_pyodbc/operations.py\", line 31, in _get_sql_server_ver\r\n cur.execute(\"SELECT CAST(SERVERPROPERTY('ProductVersion') as varchar)\")\r\n File \"/.../python3.3/dist-packages/django/db/backends/util.py\", line 51, in execute\r\n return self.cursor.execute(sql)\r\n File \"/.../python3.3/dist-packages/django_pyodbc/base.py\", line 410, in execute\r\n return self.cursor.execute(sql, params)\r\nTypeError: The first argument to execute must be a string or unicode query.\r\n```\r\n\r\nAnyway, my quick fix was to comment out lines 364-367 in base.py.\r\n\r\nAlternatively, the bytes could be converted back to a string by changing line 367 to \r\n\r\n```\r\nsql = sql.encode('utf-8').decode('utf-8')\r\n```\r\n\r\nI hope this helps someone workaround this bug. I don't know enough about django-pyodbc to be able to fix this properly.\r\n\r\nMichael.\r\n\r\n\r\n", + "score": 0.5029825 + }, + { + "url": "https://api.github.com/repos/fatiando/fatiando/issues/93", + "repository_url": "https://api.github.com/repos/fatiando/fatiando", + "labels_url": "https://api.github.com/repos/fatiando/fatiando/issues/93/labels{/name}", + "comments_url": "https://api.github.com/repos/fatiando/fatiando/issues/93/comments", + "events_url": "https://api.github.com/repos/fatiando/fatiando/issues/93/events", + "html_url": "https://github.com/fatiando/fatiando/issues/93", + "id": 28899818, + "number": 93, + "title": "installing on Windows (Anaconda)", + "user": { + "login": "ThomasLecocq", + "id": 916937, + "avatar_url": "https://avatars.githubusercontent.com/u/916937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ThomasLecocq", + "html_url": "https://github.com/ThomasLecocq", + "followers_url": "https://api.github.com/users/ThomasLecocq/followers", + "following_url": "https://api.github.com/users/ThomasLecocq/following{/other_user}", + "gists_url": "https://api.github.com/users/ThomasLecocq/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ThomasLecocq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ThomasLecocq/subscriptions", + "organizations_url": "https://api.github.com/users/ThomasLecocq/orgs", + "repos_url": "https://api.github.com/users/ThomasLecocq/repos", + "events_url": "https://api.github.com/users/ThomasLecocq/events{/privacy}", + "received_events_url": "https://api.github.com/users/ThomasLecocq/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/fatiando/fatiando/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 2, + "created_at": "2014-03-06T17:53:03Z", + "updated_at": "2014-07-03T13:39:22Z", + "closed_at": null, + "body": "Hi can't manage to install fatiando on my win7 64 box using pip:\r\n\r\nhere is the log... any idea ?\r\n```\r\n------------------------------------------------------------\r\nC:\\Anaconda\\Scripts\\pip-script.py run on 03/06/14 18:50:35\r\nDownloading/unpacking fatiando\r\n Getting page https://pypi.python.org/simple/fatiando/\r\n URLs to search for versions for fatiando:\r\n * https://pypi.python.org/simple/fatiando/\r\n Analyzing links from page https://pypi.python.org/simple/fatiando/\r\n Skipping link https://pypi.python.org/packages/2.7/f/fatiando/fatiando-0.1.win32-py2.7.msi#md5=99d6f87be66ef510362cfaf85e35d2a1 (from https://pypi.python.org/simple/fatiando/); unknown archive format: .msi\r\n Found link https://pypi.python.org/packages/source/f/fatiando/fatiando-0.0.1.tar.gz#md5=5e40b7a2b4e14c478d73bdc8e4b73314 (from https://pypi.python.org/simple/fatiando/), version: 0.0.1\r\n Found link https://pypi.python.org/packages/source/f/fatiando/fatiando-0.0.1.zip#md5=c01d6ea1e901dcaec25eef536dc15f20 (from https://pypi.python.org/simple/fatiando/), version: 0.0.1\r\n Found link https://pypi.python.org/packages/source/f/fatiando/fatiando-0.1.tar.gz#md5=e4ff50882edefb5170238e0cce86d995 (from https://pypi.python.org/simple/fatiando/), version: 0.1\r\n Found link https://pypi.python.org/packages/source/f/fatiando/fatiando-0.1.zip#md5=9dd8f56be38ae35922b21507e1c2d1c0 (from https://pypi.python.org/simple/fatiando/), version: 0.1\r\n Found link https://pypi.python.org/packages/source/f/fatiando/fatiando-0.2.tar.gz#md5=ce38655e22fd116ec3979eacd98b7388 (from https://pypi.python.org/simple/fatiando/), version: 0.2\r\n Found link https://pypi.python.org/packages/source/f/fatiando/fatiando-0.2.zip#md5=d4a4d49407d4a795152097359f4fa20b (from https://pypi.python.org/simple/fatiando/), version: 0.2\r\n Skipping link http://fatiando.readthedocs.org (from https://pypi.python.org/simple/fatiando/); not a file\r\n Skipping link http://readthedocs.org/docs/fatiando/en/latest/contributors.html (from https://pypi.python.org/simple/fatiando/); unknown archive format: .html\r\n Skipping link http://readthedocs.org/docs/fatiando/en/latest/license.html (from https://pypi.python.org/simple/fatiando/); unknown archive format: .html\r\n Skipping link http://www.fatiando.org (from https://pypi.python.org/simple/fatiando/); not a file\r\n Skipping link http://www.fatiando.org/people (from https://pypi.python.org/simple/fatiando/); not a file\r\n Skipping link https://github.com/leouieda/fatiando (from https://pypi.python.org/simple/fatiando/); not a file\r\n Using version 0.2 (newest of versions: 0.2, 0.2, 0.1, 0.1, 0.0.1, 0.0.1)\r\n Downloading from URL https://pypi.python.org/packages/source/f/fatiando/fatiando-0.2.tar.gz#md5=ce38655e22fd116ec3979eacd98b7388 (from https://pypi.python.org/simple/fatiando/)\r\n Running setup.py (path:c:\\windows\\temp\\pip_build_tlecocq\\fatiando\\setup.py) egg_info for package fatiando\r\n running egg_info\r\n creating pip-egg-info\\fatiando.egg-info\r\n writing pip-egg-info\\fatiando.egg-info\\PKG-INFO\r\n writing top-level names to pip-egg-info\\fatiando.egg-info\\top_level.txt\r\n writing dependency_links to pip-egg-info\\fatiando.egg-info\\dependency_links.txt\r\n writing manifest file 'pip-egg-info\\fatiando.egg-info\\SOURCES.txt'\r\n warning: manifest_maker: standard file '-c' not found\r\n \r\n reading manifest file 'pip-egg-info\\fatiando.egg-info\\SOURCES.txt'\r\n reading manifest template 'MANIFEST.in'\r\n writing manifest file 'pip-egg-info\\fatiando.egg-info\\SOURCES.txt'\r\n Source in c:\\windows\\temp\\pip_build_tlecocq\\fatiando has version 0.2, which satisfies requirement fatiando\r\nInstalling collected packages: fatiando\r\n Running setup.py install for fatiando\r\n Running command C:\\Anaconda\\python.exe -c \"import setuptools, tokenize;__file__='c:\\\\windows\\\\temp\\\\pip_build_tlecocq\\\\fatiando\\\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record c:\\windows\\temp\\pip-5oj18q-record\\install-record.txt --single-version-externally-managed --compile\r\n running install\r\n running build\r\n running build_py\r\n creating build\r\n creating build\\lib.win-amd64-2.7\r\n creating build\\lib.win-amd64-2.7\\fatiando\r\n copying fatiando\\constants.py -> build\\lib.win-amd64-2.7\\fatiando\r\n copying fatiando\\datasets.py -> build\\lib.win-amd64-2.7\\fatiando\r\n copying fatiando\\gridder.py -> build\\lib.win-amd64-2.7\\fatiando\r\n copying fatiando\\mesher.py -> build\\lib.win-amd64-2.7\\fatiando\r\n copying fatiando\\utils.py -> build\\lib.win-amd64-2.7\\fatiando\r\n copying fatiando\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\r\n creating build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\basin2d.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\eqlayer.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\euler.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\fourier.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\half_sph_shell.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\harvester.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\imaging.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\polyprism.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\prism.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\sphere.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\talwani.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\tensor.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\tesseroid.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\transform.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\_prism_numpy.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\_tesseroid_numpy.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n copying fatiando\\gravmag\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n creating build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n copying fatiando\\seismic\\epic2d.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n copying fatiando\\seismic\\profile.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n copying fatiando\\seismic\\srtomo.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n copying fatiando\\seismic\\ttime2d.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n copying fatiando\\seismic\\wavefd.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n copying fatiando\\seismic\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n creating build\\lib.win-amd64-2.7\\fatiando\\geothermal\r\n copying fatiando\\geothermal\\climsig.py -> build\\lib.win-amd64-2.7\\fatiando\\geothermal\r\n copying fatiando\\geothermal\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\geothermal\r\n creating build\\lib.win-amd64-2.7\\fatiando\\vis\r\n copying fatiando\\vis\\mpl.py -> build\\lib.win-amd64-2.7\\fatiando\\vis\r\n copying fatiando\\vis\\myv.py -> build\\lib.win-amd64-2.7\\fatiando\\vis\r\n copying fatiando\\vis\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\vis\r\n creating build\\lib.win-amd64-2.7\\fatiando\\gui\r\n copying fatiando\\gui\\simple.py -> build\\lib.win-amd64-2.7\\fatiando\\gui\r\n copying fatiando\\gui\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\gui\r\n creating build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n copying fatiando\\inversion\\base.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n copying fatiando\\inversion\\regularization.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n copying fatiando\\inversion\\solvers.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n copying fatiando\\inversion\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n running build_ext\r\n building 'fatiando.gravmag._prism' extension\r\n creating build\\temp.win-amd64-2.7\r\n creating build\\temp.win-amd64-2.7\\Release\r\n creating build\\temp.win-amd64-2.7\\Release\\fatiando\r\n creating build\\temp.win-amd64-2.7\\Release\\fatiando\\gravmag\r\n C:\\Anaconda\\MinGW\\x86_64-w64-mingw32\\bin\\gcc.exe -DMS_WIN64 -mdll -O -Wall -IC:\\Anaconda\\lib\\site-packages\\numpy\\core\\include -IC:\\Anaconda\\include -IC:\\Anaconda\\PC -c fatiando\\gravmag\\_prism.c -o build\\temp.win-amd64-2.7\\Release\\fatiando\\gravmag\\_prism.o\r\n gcc: error: CreateProcess: No such file or directory\r\n error: command 'gcc' failed with exit status 1\r\n Complete output from command C:\\Anaconda\\python.exe -c \"import setuptools, tokenize;__file__='c:\\\\windows\\\\temp\\\\pip_build_tlecocq\\\\fatiando\\\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record c:\\windows\\temp\\pip-5oj18q-record\\install-record.txt --single-version-externally-managed --compile:\r\n running install\r\n\r\nrunning build\r\n\r\nrunning build_py\r\n\r\ncreating build\r\n\r\ncreating build\\lib.win-amd64-2.7\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncopying fatiando\\constants.py -> build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncopying fatiando\\datasets.py -> build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncopying fatiando\\gridder.py -> build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncopying fatiando\\mesher.py -> build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncopying fatiando\\utils.py -> build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncopying fatiando\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\basin2d.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\eqlayer.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\euler.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\fourier.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\half_sph_shell.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\harvester.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\imaging.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\polyprism.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\prism.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\sphere.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\talwani.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\tensor.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\tesseroid.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\transform.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\_prism_numpy.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\_tesseroid_numpy.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncopying fatiando\\gravmag\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\gravmag\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncopying fatiando\\seismic\\epic2d.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncopying fatiando\\seismic\\profile.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncopying fatiando\\seismic\\srtomo.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncopying fatiando\\seismic\\ttime2d.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncopying fatiando\\seismic\\wavefd.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncopying fatiando\\seismic\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\seismic\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\\geothermal\r\n\r\ncopying fatiando\\geothermal\\climsig.py -> build\\lib.win-amd64-2.7\\fatiando\\geothermal\r\n\r\ncopying fatiando\\geothermal\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\geothermal\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\\vis\r\n\r\ncopying fatiando\\vis\\mpl.py -> build\\lib.win-amd64-2.7\\fatiando\\vis\r\n\r\ncopying fatiando\\vis\\myv.py -> build\\lib.win-amd64-2.7\\fatiando\\vis\r\n\r\ncopying fatiando\\vis\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\vis\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\\gui\r\n\r\ncopying fatiando\\gui\\simple.py -> build\\lib.win-amd64-2.7\\fatiando\\gui\r\n\r\ncopying fatiando\\gui\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\gui\r\n\r\ncreating build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n\r\ncopying fatiando\\inversion\\base.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n\r\ncopying fatiando\\inversion\\regularization.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n\r\ncopying fatiando\\inversion\\solvers.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n\r\ncopying fatiando\\inversion\\__init__.py -> build\\lib.win-amd64-2.7\\fatiando\\inversion\r\n\r\nrunning build_ext\r\n\r\nbuilding 'fatiando.gravmag._prism' extension\r\n\r\ncreating build\\temp.win-amd64-2.7\r\n\r\ncreating build\\temp.win-amd64-2.7\\Release\r\n\r\ncreating build\\temp.win-amd64-2.7\\Release\\fatiando\r\n\r\ncreating build\\temp.win-amd64-2.7\\Release\\fatiando\\gravmag\r\n\r\nC:\\Anaconda\\MinGW\\x86_64-w64-mingw32\\bin\\gcc.exe -DMS_WIN64 -mdll -O -Wall -IC:\\Anaconda\\lib\\site-packages\\numpy\\core\\include -IC:\\Anaconda\\include -IC:\\Anaconda\\PC -c fatiando\\gravmag\\_prism.c -o build\\temp.win-amd64-2.7\\Release\\fatiando\\gravmag\\_prism.o\r\n\r\ngcc: error: CreateProcess: No such file or directory\r\n\r\nerror: command 'gcc' failed with exit status 1\r\n\r\n----------------------------------------\r\nCleaning up...\r\n Removing temporary dir c:\\windows\\temp\\pip_build_tlecocq...\r\nCommand C:\\Anaconda\\python.exe -c \"import setuptools, tokenize;__file__='c:\\\\windows\\\\temp\\\\pip_build_tlecocq\\\\fatiando\\\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record c:\\windows\\temp\\pip-5oj18q-record\\install-record.txt --single-version-externally-managed --compile failed with error code 1 in c:\\windows\\temp\\pip_build_tlecocq\\fatiando\r\nException information:\r\nTraceback (most recent call last):\r\n File \"C:\\Anaconda\\lib\\site-packages\\pip\\basecommand.py\", line 122, in main\r\n status = self.run(options, args)\r\n File \"C:\\Anaconda\\lib\\site-packages\\pip\\commands\\install.py\", line 279, in run\r\n requirement_set.install(install_options, global_options, root=options.root_path)\r\n File \"C:\\Anaconda\\lib\\site-packages\\pip\\req.py\", line 1380, in install\r\n requirement.install(install_options, global_options, *args, **kwargs)\r\n File \"C:\\Anaconda\\lib\\site-packages\\pip\\req.py\", line 699, in install\r\n cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)\r\n File \"C:\\Anaconda\\lib\\site-packages\\pip\\util.py\", line 697, in call_subprocess\r\n % (command_desc, proc.returncode, cwd))\r\nInstallationError: Command C:\\Anaconda\\python.exe -c \"import setuptools, tokenize;__file__='c:\\\\windows\\\\temp\\\\pip_build_tlecocq\\\\fatiando\\\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record c:\\windows\\temp\\pip-5oj18q-record\\install-record.txt --single-version-externally-managed --compile failed with error code 1 in c:\\windows\\temp\\pip_build_tlecocq\\fatiando\r\n```", + "score": 4.040541 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/169", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/169/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/169/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/169/events", + "html_url": "https://github.com/pypa/setuptools/issues/169", + "id": 144277209, + "number": 169, + "title": "easy_install does not handle -f option correctly with paths containing spaces", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/minor", + "name": "minor", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2014-03-21T20:22:15Z", + "updated_at": "2016-03-29T14:14:11Z", + "closed_at": null, + "body": "Originally reported by: **jurko (Bitbucket: [jurko](http://bitbucket.org/jurko), GitHub: [jurko](http://github.com/jurko))**\n\n----------------------------------------\n\nRunning ```easy_install``` using its ```-f``` option and passing it a folder path containing spaces as in:\n\n```\n#!text\neasy_install -f \"C:\\I am a\\path containing\\spaces\" pip\n```\n\ndoes not seem to work. ```easy_install``` seems to interpret the given string as a space separated sequence of paths.\n\nUsing such paths in other locations, e.g. in ```--install-dir``` or ```--download-cache``` arguments works fine.\n\nThis has been tested using:\n\n* Windows 7 SP1 x64\n* CPython ```2.4.3```, ```2.4.4```, ```2.5.4```, ```2.6.6```, ```2.7.6```, ```3.1.3```, ```3.2.5```, ```3.3.3```, ```3.3.5``` & ```3.4.0``` (both 32 & 64-bit versions).\n* setuptools ```1.4```, ```1.4.2```, ```3.1```, ```3.3```\n\nHope this helps.\n\nBest regards,\n Jurko Gospodnetić\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/169\n", + "score": 0.9477744 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/216", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/216/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/216/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/216/events", + "html_url": "https://github.com/pypa/setuptools/issues/216", + "id": 144277936, + "number": 216, + "title": "Generated launchers won't launch if there is a space in the path", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2014-06-03T22:46:18Z", + "updated_at": "2016-03-29T14:16:55Z", + "closed_at": null, + "body": "Originally reported by: **stevedower (Bitbucket: [stevedower](http://bitbucket.org/stevedower), GitHub: Unknown)**\n\n----------------------------------------\n\n(This is related to https://bitbucket.org/pypa/setuptools/issue/188/nt-escaping-in-shebang-in-easy_install, but that one is now being treated as a feature request and I believe the two changes would be unrelated anyway.)\n\nThe latest setuptools generates .exe launchers that include a shebang line pointing to the python.exe. If there is a space in this path, the path is quoted.\n\nHowever, when the launcher runs, it will add a second set of quotes to the path leading to an error like this:\n\n```text\nFatal error in launcher: Unable to create process using '\"\"D:\\...\\Test VEnv\\Scripts\\python.exe\"\" \"D:\\...\\Test VEnv\\Scripts\\easy_install.exe\" '\n```\n\nI believe the issue is in the launcher rather than the shebang line, since quoting that path is the only way you could support arguments as well as spaces on Windows. IMO, the launcher should not add more quotes to the shebang line when launching.\n\n\nMy repro steps (run at the command prompt):\n\n```text\nC:\\Python27\\python.exe -m virtualenv \"Test VEnv\"\ncd Test VEnv\nScripts\\python.exe -m pip install -U setuptools==4.0.1\n\nrem The current easy_install.exe was generated with setuptools 3.something and it works fine\n\nrem The next line generates a new easy_install.exe with setuptools 4.0.1 and it doesn't work\nScripts\\python.exe -m pip install -U setuptools==4.0.0\nScripts\\easy_install.exe\n```\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/216\n", + "score": 1.0008225 + }, + { + "url": "https://api.github.com/repos/gatech-csl/jes/issues/49", + "repository_url": "https://api.github.com/repos/gatech-csl/jes", + "labels_url": "https://api.github.com/repos/gatech-csl/jes/issues/49/labels{/name}", + "comments_url": "https://api.github.com/repos/gatech-csl/jes/issues/49/comments", + "events_url": "https://api.github.com/repos/gatech-csl/jes/issues/49/events", + "html_url": "https://github.com/gatech-csl/jes/issues/49", + "id": 34969582, + "number": 49, + "title": "Trying to import JES libraries in Jython 2.2.1", + "user": { + "login": "leafstorm", + "id": 271305, + "avatar_url": "https://avatars.githubusercontent.com/u/271305?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/leafstorm", + "html_url": "https://github.com/leafstorm", + "followers_url": "https://api.github.com/users/leafstorm/followers", + "following_url": "https://api.github.com/users/leafstorm/following{/other_user}", + "gists_url": "https://api.github.com/users/leafstorm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/leafstorm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/leafstorm/subscriptions", + "organizations_url": "https://api.github.com/users/leafstorm/orgs", + "repos_url": "https://api.github.com/users/leafstorm/repos", + "events_url": "https://api.github.com/users/leafstorm/events{/privacy}", + "received_events_url": "https://api.github.com/users/leafstorm/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/gatech-csl/jes/labels/Bug", + "name": "Bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/gatech-csl/jes/labels/Imported", + "name": "Imported", + "color": "FFFFFF" + }, + { + "url": "https://api.github.com/repos/gatech-csl/jes/labels/Priority-Medium", + "name": "Priority-Medium", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2014-06-04T15:26:28Z", + "updated_at": "2015-03-14T14:34:13Z", + "closed_at": null, + "body": "_From [jason.r....@gmail.com](https://code.google.com/u/102773798485584509359/) on May 16, 2011 15:07:55_\n\nWhat steps will reproduce the problem? 1. Starting Jython 2.2.1 shell\r\n2. Using the following commands (pg 227 in Intro to Computing and Programming in Python):\r\n>>> import sys\r\n>>> sys.path.insert(0,\"C:\\Program Files\\JES 4.3\\Sources\")\r\n>>> from media import *\r\n3. These lines cause a series of \"ClassNotFound Exceptions\" starting\r\non line 183 in media.py (in the Sources directory).\r\n\r\nIf I comment out lines 184-204 in media.py (namely the makeEmptySound function and the makeEmptySoundBySeconds function), the lines above work and I am able to use the majority of the JES library. What is the expected output? What do you see instead? Expected successful import of all items in media.py. Get an error instead. What version of the product are you using? On what operating system? Using JES 4.3, Jython 2.2.1, on Windows Vista Please provide any additional information below. I should note that I had no issues utilizing the image/color functions in the library outside the JES.\n\n_Original issue: http://code.google.com/p/mediacomp-jes/issues/detail?id=49_", + "score": 0.40525913 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/1891", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/1891/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/1891/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/1891/events", + "html_url": "https://github.com/pypa/pip/issues/1891", + "id": 36364368, + "number": 1891, + "title": "wheel: script with multiprocessing doesn't work on Windows", + "user": { + "login": "schlamar", + "id": 238652, + "avatar_url": "https://avatars.githubusercontent.com/u/238652?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/schlamar", + "html_url": "https://github.com/schlamar", + "followers_url": "https://api.github.com/users/schlamar/followers", + "following_url": "https://api.github.com/users/schlamar/following{/other_user}", + "gists_url": "https://api.github.com/users/schlamar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/schlamar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/schlamar/subscriptions", + "organizations_url": "https://api.github.com/users/schlamar/orgs", + "repos_url": "https://api.github.com/users/schlamar/repos", + "events_url": "https://api.github.com/users/schlamar/events{/privacy}", + "received_events_url": "https://api.github.com/users/schlamar/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 14, + "created_at": "2014-06-24T08:45:22Z", + "updated_at": "2015-11-19T09:37:02Z", + "closed_at": null, + "body": "setup.py\r\n\r\n from setuptools import setup\r\n\r\n setup(\r\n version='0.0.1',\r\n name=\"blub\",\r\n py_modules=[\"blub\"],\r\n entry_points={\r\n 'console_scripts': ['blub = blub:main'],\r\n },\r\n )\r\n\r\n\r\nblub.py\r\n\r\n import multiprocessing\r\n\r\n def f():\r\n pass\r\n\r\n def main():\r\n p = multiprocessing.Process(target=f)\r\n p.start()\r\n p.join()\r\n print 'xxx'\r\n\r\nWhen installing this without wheel, everything is fine:\r\n\r\n $ pip install .\r\n $ blub\r\n xxx\r\n\r\nInstalling this as wheel, the script is broken:\r\n\r\n $ pip uninstall blub\r\n $ pip wheel .\r\n $ pip install wheelhouse/*\r\n $ blub\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"c:\\Python27\\Lib\\multiprocessing\\forking.py\", line 380, in main\r\n prepare(preparation_data)\r\n File \"c:\\Python27\\Lib\\multiprocessing\\forking.py\", line 488, in prepare\r\n assert main_name not in sys.modules, main_name\r\n AssertionError: __main__\r\n xxx\r\n\r\nThis is probably related to http://bugs.python.org/issue10845.", + "score": 3.5934277 + }, + { + "url": "https://api.github.com/repos/cherrypy/cherrypy/issues/1327", + "repository_url": "https://api.github.com/repos/cherrypy/cherrypy", + "labels_url": "https://api.github.com/repos/cherrypy/cherrypy/issues/1327/labels{/name}", + "comments_url": "https://api.github.com/repos/cherrypy/cherrypy/issues/1327/comments", + "events_url": "https://api.github.com/repos/cherrypy/cherrypy/issues/1327/events", + "html_url": "https://github.com/cherrypy/cherrypy/issues/1327", + "id": 152025710, + "number": 1327, + "title": "Python 27(64) Windows pip install misplaces tutorial.conf", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/cherrypy/cherrypy/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/cherrypy/cherrypy/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2014-06-28T16:11:37Z", + "updated_at": "2016-05-29T20:30:25Z", + "closed_at": null, + "body": "Originally reported by: **Jeff Anderson (Bitbucket: [jbanderson](http://bitbucket.org/jbanderson), GitHub: [jbanderson](http://github.com/jbanderson))**\n\n----------------------------------------\n\nTutorial.conf is installed at C:\\Python27\\Lib\\site-packages\\PURELIB\\cherrypy\n\nOnce copied into C:\\Python27\\Lib\\site-packages\\cherrypy\\tutorial it makes it past the exception. \n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/cherrypy/cherrypy/issue/1327\n", + "score": 10.026644 + }, + { + "url": "https://api.github.com/repos/django-silk/silk/issues/26", + "repository_url": "https://api.github.com/repos/django-silk/silk", + "labels_url": "https://api.github.com/repos/django-silk/silk/issues/26/labels{/name}", + "comments_url": "https://api.github.com/repos/django-silk/silk/issues/26/comments", + "events_url": "https://api.github.com/repos/django-silk/silk/issues/26/events", + "html_url": "https://github.com/django-silk/silk/issues/26", + "id": 38107668, + "number": 26, + "title": "IntegrityError: duplicate key value violates unique constraint \"silk_response_request_id_key\"", + "user": { + "login": "synotna", + "id": 3313126, + "avatar_url": "https://avatars.githubusercontent.com/u/3313126?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/synotna", + "html_url": "https://github.com/synotna", + "followers_url": "https://api.github.com/users/synotna/followers", + "following_url": "https://api.github.com/users/synotna/following{/other_user}", + "gists_url": "https://api.github.com/users/synotna/gists{/gist_id}", + "starred_url": "https://api.github.com/users/synotna/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/synotna/subscriptions", + "organizations_url": "https://api.github.com/users/synotna/orgs", + "repos_url": "https://api.github.com/users/synotna/repos", + "events_url": "https://api.github.com/users/synotna/events{/privacy}", + "received_events_url": "https://api.github.com/users/synotna/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/django-silk/silk/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 78, + "created_at": "2014-07-17T17:47:20Z", + "updated_at": "2016-03-29T15:48:34Z", + "closed_at": null, + "body": "After activating silk certain urls began erring with:\r\n\r\nIntegrityError: duplicate key value violates unique constraint \"silk_response_request_id_key\"\r\nDETAIL: Key (request_id)=(1166) already exists.\r\n\r\nSentry stack trace: http://toolbox1.tedc.de:9000/bidev/esldj/group/131/", + "score": 0.16021633 + }, + { + "url": "https://api.github.com/repos/mitsuhiko/pipsi/issues/9", + "repository_url": "https://api.github.com/repos/mitsuhiko/pipsi", + "labels_url": "https://api.github.com/repos/mitsuhiko/pipsi/issues/9/labels{/name}", + "comments_url": "https://api.github.com/repos/mitsuhiko/pipsi/issues/9/comments", + "events_url": "https://api.github.com/repos/mitsuhiko/pipsi/issues/9/events", + "html_url": "https://github.com/mitsuhiko/pipsi/issues/9", + "id": 40617250, + "number": 9, + "title": "pipsi dont work on Windows", + "user": { + "login": "luzfcb", + "id": 807599, + "avatar_url": "https://avatars.githubusercontent.com/u/807599?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/luzfcb", + "html_url": "https://github.com/luzfcb", + "followers_url": "https://api.github.com/users/luzfcb/followers", + "following_url": "https://api.github.com/users/luzfcb/following{/other_user}", + "gists_url": "https://api.github.com/users/luzfcb/gists{/gist_id}", + "starred_url": "https://api.github.com/users/luzfcb/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/luzfcb/subscriptions", + "organizations_url": "https://api.github.com/users/luzfcb/orgs", + "repos_url": "https://api.github.com/users/luzfcb/repos", + "events_url": "https://api.github.com/users/luzfcb/events{/privacy}", + "received_events_url": "https://api.github.com/users/luzfcb/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/mitsuhiko/pipsi/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 12, + "created_at": "2014-08-19T17:45:41Z", + "updated_at": "2015-08-06T20:33:55Z", + "closed_at": null, + "body": "Thanks for that, however, pipsi dont work on Windows\r\n\r\nIf you do not have the intention to support the windows, it would be nice to make this explicit in the README and classifiers field from setup.py \r\n", + "score": 3.4802372 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/1997", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/1997/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/1997/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/1997/events", + "html_url": "https://github.com/pypa/pip/issues/1997", + "id": 41368648, + "number": 1997, + "title": "Using pip launcher on Windows when path contains spaces", + "user": { + "login": "Drekin", + "id": 7892803, + "avatar_url": "https://avatars.githubusercontent.com/u/7892803?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Drekin", + "html_url": "https://github.com/Drekin", + "followers_url": "https://api.github.com/users/Drekin/followers", + "following_url": "https://api.github.com/users/Drekin/following{/other_user}", + "gists_url": "https://api.github.com/users/Drekin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Drekin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Drekin/subscriptions", + "organizations_url": "https://api.github.com/users/Drekin/orgs", + "repos_url": "https://api.github.com/users/Drekin/repos", + "events_url": "https://api.github.com/users/Drekin/events{/privacy}", + "received_events_url": "https://api.github.com/users/Drekin/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 13, + "created_at": "2014-08-28T09:01:24Z", + "updated_at": "2015-11-13T09:09:12Z", + "closed_at": null, + "body": "There is a problem when trying to run pip.exe when the path of Python installation contain spaces. Some launcher code adds extra quotes, which results in incorrect path and results in fatal error in launcher. See for example http://stackoverflow.com/questions/24627525/fatal-error-in-launcher-unable-to-create-process-using-c-program-files-x86. I understand that this is probably issue of the code producing the launcher (there is the same problem with IPython launcher), but I'm not sure where to report it. ", + "score": 7.2904325 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/252", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/252/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/252/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/252/events", + "html_url": "https://github.com/pypa/setuptools/issues/252", + "id": 144278559, + "number": 252, + "title": "Import error on ContextualZipFile inside pkg_resources.py", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 20, + "created_at": "2014-09-04T07:33:02Z", + "updated_at": "2016-03-29T14:19:10Z", + "closed_at": null, + "body": "Originally reported by: **jabagawee (Bitbucket: [jabagawee](http://bitbucket.org/jabagawee), GitHub: [jabagawee](http://github.com/jabagawee))**\n\n----------------------------------------\n\nRunning the latest setuptools and pip from get-pip.py on Linux Mint 17 to install any package causes an ImportError to occur when trying to import ContextualZipFile from pkg_resources. The ensure_directory import on the same line has no issues. Checking pkg_resources.py confirms that the class ContextualZipFile does in fact exist.\n\nAlternatively, installing the python-pip package from my package manager makes everything work just fine. I'm probably being very unclear, so feel free to ping me for clarification.\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/252\n", + "score": 1.5902008 + }, + { + "url": "https://api.github.com/repos/forcedotcom/distributions/issues/84", + "repository_url": "https://api.github.com/repos/forcedotcom/distributions", + "labels_url": "https://api.github.com/repos/forcedotcom/distributions/issues/84/labels{/name}", + "comments_url": "https://api.github.com/repos/forcedotcom/distributions/issues/84/comments", + "events_url": "https://api.github.com/repos/forcedotcom/distributions/issues/84/events", + "html_url": "https://github.com/forcedotcom/distributions/issues/84", + "id": 42919269, + "number": 84, + "title": "APPCRASH when trying to install within Anaconda3, Windows 7", + "user": { + "login": "empirical-bayesian", + "id": 4048647, + "avatar_url": "https://avatars.githubusercontent.com/u/4048647?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/empirical-bayesian", + "html_url": "https://github.com/empirical-bayesian", + "followers_url": "https://api.github.com/users/empirical-bayesian/followers", + "following_url": "https://api.github.com/users/empirical-bayesian/following{/other_user}", + "gists_url": "https://api.github.com/users/empirical-bayesian/gists{/gist_id}", + "starred_url": "https://api.github.com/users/empirical-bayesian/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/empirical-bayesian/subscriptions", + "organizations_url": "https://api.github.com/users/empirical-bayesian/orgs", + "repos_url": "https://api.github.com/users/empirical-bayesian/repos", + "events_url": "https://api.github.com/users/empirical-bayesian/events{/privacy}", + "received_events_url": "https://api.github.com/users/empirical-bayesian/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/forcedotcom/distributions/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2014-09-16T18:57:55Z", + "updated_at": "2014-09-16T20:54:42Z", + "closed_at": null, + "body": "Problem Event Name:\tAPPCRASH\r\n Application Name:\tpythonw.exe\r\n Application Version:\t0.0.0.0\r\n Application Timestamp:\t5398d7c1\r\n Fault Module Name:\tpython34.dll\r\n Fault Module Version:\t3.4.1150.1013\r\n Fault Module Timestamp:\t5398d7c0\r\n Exception Code:\tc0000005\r\n Exception Offset:\t00000000000d7881\r\n OS Version:\t6.1.7601.2.1.0.256.4\r\n Locale ID:\t1033\r\n\r\nThis happens whenever I try to install distributions-2.0.26 under Anaconda3 (Python 3.4), in Windows 7, on 64-bit. Happens if pip is used or install is attempted from source. I have tried installing from an Administrator Command Prompt as well, and from the QT window. Also have gone back to distributions-2.0.10 and tried that. This happens trying to install dpmix as well. \r\n\r\nAnaconda3 was just installed today, and I ran updates of numpy, scipy, and anaconda itself.\r\n\r\nThoughts? \r\n", + "score": 2.6478007 + }, + { + "url": "https://api.github.com/repos/LeeKamentsky/python-javabridge/issues/34", + "repository_url": "https://api.github.com/repos/LeeKamentsky/python-javabridge", + "labels_url": "https://api.github.com/repos/LeeKamentsky/python-javabridge/issues/34/labels{/name}", + "comments_url": "https://api.github.com/repos/LeeKamentsky/python-javabridge/issues/34/comments", + "events_url": "https://api.github.com/repos/LeeKamentsky/python-javabridge/issues/34/events", + "html_url": "https://github.com/LeeKamentsky/python-javabridge/issues/34", + "id": 48280594, + "number": 34, + "title": "JVMNotFoundError NameError on pip install", + "user": { + "login": "braymp", + "id": 1186440, + "avatar_url": "https://avatars.githubusercontent.com/u/1186440?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/braymp", + "html_url": "https://github.com/braymp", + "followers_url": "https://api.github.com/users/braymp/followers", + "following_url": "https://api.github.com/users/braymp/following{/other_user}", + "gists_url": "https://api.github.com/users/braymp/gists{/gist_id}", + "starred_url": "https://api.github.com/users/braymp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/braymp/subscriptions", + "organizations_url": "https://api.github.com/users/braymp/orgs", + "repos_url": "https://api.github.com/users/braymp/repos", + "events_url": "https://api.github.com/users/braymp/events{/privacy}", + "received_events_url": "https://api.github.com/users/braymp/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/LeeKamentsky/python-javabridge/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2014-11-10T16:06:28Z", + "updated_at": "2014-11-10T16:12:50Z", + "closed_at": null, + "body": "While trying to pip install --upgrade from 1.03 to 1.0.9, I get the following error:\r\n```\r\nTraceback (most recent call last):\r\n File \"\", line 17, in \r\n File \"c:\\users\\develo~1\\appdata\\local\\temp\\pip_build_Developer\\javabridge\\setup.py\", line 238, in \r\n ext_modules=ext_modules(),\r\n File \"c:\\users\\develo~1\\appdata\\local\\temp\\pip_build_Developer\\javabridge\\setup.py\", line 58, in ext_modules\r\n raise JVMNotFoundError()\r\nNameError: global name 'JVMNotFoundError' is not defined\r\n```", + "score": 7.062714 + }, + { + "url": "https://api.github.com/repos/BurntSushi/pdoc/issues/20", + "repository_url": "https://api.github.com/repos/BurntSushi/pdoc", + "labels_url": "https://api.github.com/repos/BurntSushi/pdoc/issues/20/labels{/name}", + "comments_url": "https://api.github.com/repos/BurntSushi/pdoc/issues/20/comments", + "events_url": "https://api.github.com/repos/BurntSushi/pdoc/issues/20/events", + "html_url": "https://github.com/BurntSushi/pdoc/issues/20", + "id": 51439109, + "number": 20, + "title": "Windows Powershell", + "user": { + "login": "suidobashi", + "id": 10131194, + "avatar_url": "https://avatars.githubusercontent.com/u/10131194?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/suidobashi", + "html_url": "https://github.com/suidobashi", + "followers_url": "https://api.github.com/users/suidobashi/followers", + "following_url": "https://api.github.com/users/suidobashi/following{/other_user}", + "gists_url": "https://api.github.com/users/suidobashi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/suidobashi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/suidobashi/subscriptions", + "organizations_url": "https://api.github.com/users/suidobashi/orgs", + "repos_url": "https://api.github.com/users/suidobashi/repos", + "events_url": "https://api.github.com/users/suidobashi/events{/privacy}", + "received_events_url": "https://api.github.com/users/suidobashi/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/BurntSushi/pdoc/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2014-12-09T15:18:00Z", + "updated_at": "2015-01-25T18:32:03Z", + "closed_at": null, + "body": "Installed using pip to a Windows 8.1 Powershell environment.\r\n\r\nWas unable to run the pdoc script as a shebang script. (Powershell requires a filename extension to make the script executable.)\r\n\r\nWorkaround was to run directly from the python interpreter.", + "score": 5.3210306 + }, + { + "url": "https://api.github.com/repos/GijsTimmers/kotnetcli/issues/43", + "repository_url": "https://api.github.com/repos/GijsTimmers/kotnetcli", + "labels_url": "https://api.github.com/repos/GijsTimmers/kotnetcli/issues/43/labels{/name}", + "comments_url": "https://api.github.com/repos/GijsTimmers/kotnetcli/issues/43/comments", + "events_url": "https://api.github.com/repos/GijsTimmers/kotnetcli/issues/43/events", + "html_url": "https://github.com/GijsTimmers/kotnetcli/issues/43", + "id": 51445022, + "number": 43, + "title": "Mac OS X mode issues", + "user": { + "login": "Wouter92", + "id": 3626287, + "avatar_url": "https://avatars.githubusercontent.com/u/3626287?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Wouter92", + "html_url": "https://github.com/Wouter92", + "followers_url": "https://api.github.com/users/Wouter92/followers", + "following_url": "https://api.github.com/users/Wouter92/following{/other_user}", + "gists_url": "https://api.github.com/users/Wouter92/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Wouter92/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Wouter92/subscriptions", + "organizations_url": "https://api.github.com/users/Wouter92/orgs", + "repos_url": "https://api.github.com/users/Wouter92/repos", + "events_url": "https://api.github.com/users/Wouter92/events{/privacy}", + "received_events_url": "https://api.github.com/users/Wouter92/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/GijsTimmers/kotnetcli/labels/@medium", + "name": "@medium", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/GijsTimmers/kotnetcli/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/GijsTimmers/kotnetcli/labels/mac-osx", + "name": "mac-osx", + "color": "000000" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "GijsTimmers", + "id": 972314, + "avatar_url": "https://avatars.githubusercontent.com/u/972314?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/GijsTimmers", + "html_url": "https://github.com/GijsTimmers", + "followers_url": "https://api.github.com/users/GijsTimmers/followers", + "following_url": "https://api.github.com/users/GijsTimmers/following{/other_user}", + "gists_url": "https://api.github.com/users/GijsTimmers/gists{/gist_id}", + "starred_url": "https://api.github.com/users/GijsTimmers/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GijsTimmers/subscriptions", + "organizations_url": "https://api.github.com/users/GijsTimmers/orgs", + "repos_url": "https://api.github.com/users/GijsTimmers/repos", + "events_url": "https://api.github.com/users/GijsTimmers/events{/privacy}", + "received_events_url": "https://api.github.com/users/GijsTimmers/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/GijsTimmers/kotnetcli/milestones/1", + "html_url": "https://github.com/GijsTimmers/kotnetcli/milestones/2.0.0:%20'Barndominium'", + "labels_url": "https://api.github.com/repos/GijsTimmers/kotnetcli/milestones/1/labels", + "id": 891295, + "number": 1, + "title": "2.0.0: 'Barndominium'", + "description": "This version should feel pretty complete.", + "creator": { + "login": "GijsTimmers", + "id": 972314, + "avatar_url": "https://avatars.githubusercontent.com/u/972314?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/GijsTimmers", + "html_url": "https://github.com/GijsTimmers", + "followers_url": "https://api.github.com/users/GijsTimmers/followers", + "following_url": "https://api.github.com/users/GijsTimmers/following{/other_user}", + "gists_url": "https://api.github.com/users/GijsTimmers/gists{/gist_id}", + "starred_url": "https://api.github.com/users/GijsTimmers/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GijsTimmers/subscriptions", + "organizations_url": "https://api.github.com/users/GijsTimmers/orgs", + "repos_url": "https://api.github.com/users/GijsTimmers/repos", + "events_url": "https://api.github.com/users/GijsTimmers/events{/privacy}", + "received_events_url": "https://api.github.com/users/GijsTimmers/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 17, + "state": "open", + "created_at": "2014-12-04T10:39:05Z", + "updated_at": "2016-04-27T21:39:16Z", + "due_on": null, + "closed_at": null + }, + "comments": 14, + "created_at": "2014-12-09T16:02:40Z", + "updated_at": "2016-06-08T21:51:16Z", + "closed_at": null, + "body": "These modes currently don't work on Mac OS X:\r\n\r\n- Dialog\r\n```python\r\nTraceback (most recent call last):\r\n File \"./kotnetcli.py\", line 220, in \r\n aanstuurderObvArgumenten(argumentenParser())\r\n File \"./kotnetcli.py\", line 184, in aanstuurderObvArgumenten\r\n co = communicator.DialogCommunicator()\r\n File \"/Volumes/MacintoshHD/Users/wouterfranken/Development/kotnetcliFork/kotnetcli/communicator.py\", line 111, in __init__\r\n self.d = Dialog(dialog=\"dialog\")\r\n File \"/usr/local/lib/python2.7/site-packages/dialog.py\", line 1346, in __init__\r\n self._dialog_prg = _path_to_executable(dialog)\r\n File \"/usr/local/lib/python2.7/site-packages/dialog.py\", line 485, in _path_to_executable\r\n \"can't find the executable for the dialog-like \"\r\ndialog.ExecutableNotFound\r\n```\r\n- Bubble\r\n```python\r\nDynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!\r\nTraceback (most recent call last):\r\n File \"./kotnetcli.py\", line 220, in \r\n aanstuurderObvArgumenten(argumentenParser())\r\n File \"./kotnetcli.py\", line 191, in aanstuurderObvArgumenten\r\n co = communicator.BubbleCommunicator()\r\n File \"/Volumes/MacintoshHD/Users/wouterfranken/Development/kotnetcliFork/kotnetcli/communicator.py\", line 94, in __init__\r\n notify2.init(\"kotnetcli\")\r\n File \"/usr/local/lib/python2.7/site-packages/notify2.py\", line 93, in init\r\n bus = dbus.SessionBus(mainloop=mainloop)\r\n File \"/usr/local/lib/python2.7/site-packages/dbus/_dbus.py\", line 211, in __new__\r\n mainloop=mainloop)\r\n File \"/usr/local/lib/python2.7/site-packages/dbus/_dbus.py\", line 100, in __new__\r\n bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)\r\n File \"/usr/local/lib/python2.7/site-packages/dbus/bus.py\", line 122, in __new__\r\n bus = cls._new_for_bus(address_or_type, mainloop=mainloop)\r\ndbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoMemory: Not enough memory\r\n```", + "score": 0.49015692 + }, + { + "url": "https://api.github.com/repos/paramiko/paramiko/issues/452", + "repository_url": "https://api.github.com/repos/paramiko/paramiko", + "labels_url": "https://api.github.com/repos/paramiko/paramiko/issues/452/labels{/name}", + "comments_url": "https://api.github.com/repos/paramiko/paramiko/issues/452/comments", + "events_url": "https://api.github.com/repos/paramiko/paramiko/issues/452/events", + "html_url": "https://github.com/paramiko/paramiko/issues/452", + "id": 51475626, + "number": 452, + "title": "strange unknown type exception when using password auth on windows", + "user": { + "login": "axfelix", + "id": 252047, + "avatar_url": "https://avatars.githubusercontent.com/u/252047?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/axfelix", + "html_url": "https://github.com/axfelix", + "followers_url": "https://api.github.com/users/axfelix/followers", + "following_url": "https://api.github.com/users/axfelix/following{/other_user}", + "gists_url": "https://api.github.com/users/axfelix/gists{/gist_id}", + "starred_url": "https://api.github.com/users/axfelix/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/axfelix/subscriptions", + "organizations_url": "https://api.github.com/users/axfelix/orgs", + "repos_url": "https://api.github.com/users/axfelix/repos", + "events_url": "https://api.github.com/users/axfelix/events{/privacy}", + "received_events_url": "https://api.github.com/users/axfelix/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/paramiko/paramiko/labels/Bug", + "name": "Bug", + "color": "a04040" + }, + { + "url": "https://api.github.com/repos/paramiko/paramiko/labels/Keys", + "name": "Keys", + "color": "bfdadc" + }, + { + "url": "https://api.github.com/repos/paramiko/paramiko/labels/Needs%20investigation", + "name": "Needs investigation", + "color": "fad8c7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 8, + "created_at": "2014-12-09T20:13:42Z", + "updated_at": "2015-10-19T12:07:40Z", + "closed_at": null, + "body": "when running the following code:\r\n\r\nfrom paramiko import SSHClient\r\nfrom paramiko import AutoAddPolicy\r\nssh = SSHClient()\r\nssh.set_missing_host_key_policy(AutoAddPolicy())\r\nssh.connect(server, username=Username, password=Password, look_for_keys=False)\r\n\r\nI'm getting:\r\n\r\n File \"myscript.py\", line 243, in check_zip_and_send\r\n ssh.connect(server, username=Username, password=Password, look_for_keys=False)\r\n File \"c:\\Users\\Alex\\Dropbox\\Python27\\lib\\site-packages\\paramiko\\client.py\", line 307, in connect\r\n look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)\r\n File \"c:\\Users\\Alex\\Dropbox\\Python27\\lib\\site-packages\\paramiko\\client.py\", line 510, in _auth\r\n self._transport.auth_password(username, password)\r\n File \"c:\\Users\\Alex\\Dropbox\\Python27\\lib\\site-packages\\paramiko\\transport.py\", line 1166, in auth_password\r\n return self.auth_handler.wait_for_response(my_event)\r\n File \"c:\\Users\\Alex\\Dropbox\\Python27\\lib\\site-packages\\paramiko\\auth_handler.py\", line 197, in wait_for_response\r\n raise e\r\nException: Unknown type\r\n\r\nany ideas? not seeing any hits for this one; everything was installed from pip. I can test on OSX and Linux later this evening.", + "score": 2.7114635 + }, + { + "url": "https://api.github.com/repos/python/mypy/issues/548", + "repository_url": "https://api.github.com/repos/python/mypy", + "labels_url": "https://api.github.com/repos/python/mypy/issues/548/labels{/name}", + "comments_url": "https://api.github.com/repos/python/mypy/issues/548/comments", + "events_url": "https://api.github.com/repos/python/mypy/issues/548/events", + "html_url": "https://github.com/python/mypy/issues/548", + "id": 53040941, + "number": 548, + "title": "Cygwin awkwardness", + "user": { + "login": "binkley", + "id": 186421, + "avatar_url": "https://avatars.githubusercontent.com/u/186421?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/binkley", + "html_url": "https://github.com/binkley", + "followers_url": "https://api.github.com/users/binkley/followers", + "following_url": "https://api.github.com/users/binkley/following{/other_user}", + "gists_url": "https://api.github.com/users/binkley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/binkley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/binkley/subscriptions", + "organizations_url": "https://api.github.com/users/binkley/orgs", + "repos_url": "https://api.github.com/users/binkley/repos", + "events_url": "https://api.github.com/users/binkley/events{/privacy}", + "received_events_url": "https://api.github.com/users/binkley/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/python/mypy/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2014-12-29T13:26:13Z", + "updated_at": "2015-01-04T15:44:52Z", + "closed_at": null, + "body": "Current cygwin python3 is 3.2.5, so I install and use the native Windows Python which is 3.4.2 installed at `C:\\Python34` (the default).\r\n\r\nAfter installing mypy via `python setup.py instal`\" it installs under `C:\\Python34`, as expected, and creates a `C:\\Python34\\Scripts\\mypy` file. Note there is no `mypy.exe` program. (There are such programs for `pip.exe` and `easy_install.exe`, would be helpful for mypy to do likewise.)\r\n\r\nTo run this under cygwin requires an explicit call to `python` (bash turns the script path into a unix-y one, which confuses native Windows python -- not your issue, I mention this for clarity), this:\r\n\r\n```bash\r\n$ export PATH=/cygdrive/c/Python34:$PATH\r\n$ python C:/Python34/Scripts/mypy my-file.py\r\n```\r\n\r\nOddly this complains there is no `enum` module to import, though running `python my-file.py` directly works fine. Running the same under a native CMD prompt behaves the same.\r\n\r\nI'm unsure what about running from a Cygwin bash shell is causing the issue, perhaps it isn't mypy's fault at all but I'm at a loss how to investigate.", + "score": 0.826924 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/19349", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/19349/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/19349/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/19349/events", + "html_url": "https://github.com/saltstack/salt/issues/19349", + "id": 53424972, + "number": 19349, + "title": "Salt-master: Could not deserialize msgpack message", + "user": { + "login": "masterkorp", + "id": 223763, + "avatar_url": "https://avatars.githubusercontent.com/u/223763?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/masterkorp", + "html_url": "https://github.com/masterkorp", + "followers_url": "https://api.github.com/users/masterkorp/followers", + "following_url": "https://api.github.com/users/masterkorp/following{/other_user}", + "gists_url": "https://api.github.com/users/masterkorp/gists{/gist_id}", + "starred_url": "https://api.github.com/users/masterkorp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/masterkorp/subscriptions", + "organizations_url": "https://api.github.com/users/masterkorp/orgs", + "repos_url": "https://api.github.com/users/masterkorp/repos", + "events_url": "https://api.github.com/users/masterkorp/events{/privacy}", + "received_events_url": "https://api.github.com/users/masterkorp/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Cannot%20Reproduce", + "name": "Cannot Reproduce", + "color": "c7def8" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Info%20Needed", + "name": "Info Needed", + "color": "c7def8" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P1", + "name": "P1", + "color": "2181ee" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Platform", + "name": "Platform", + "color": "fef2c0" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "dmurphy18", + "id": 9943204, + "avatar_url": "https://avatars.githubusercontent.com/u/9943204?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dmurphy18", + "html_url": "https://github.com/dmurphy18", + "followers_url": "https://api.github.com/users/dmurphy18/followers", + "following_url": "https://api.github.com/users/dmurphy18/following{/other_user}", + "gists_url": "https://api.github.com/users/dmurphy18/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dmurphy18/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dmurphy18/subscriptions", + "organizations_url": "https://api.github.com/users/dmurphy18/orgs", + "repos_url": "https://api.github.com/users/dmurphy18/repos", + "events_url": "https://api.github.com/users/dmurphy18/events{/privacy}", + "received_events_url": "https://api.github.com/users/dmurphy18/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/37", + "html_url": "https://github.com/saltstack/salt/milestones/Blocked", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/37/labels", + "id": 343741, + "number": 37, + "title": "Blocked", + "description": "Issues which are blocked in some way, whether they need further discussion, clarification, justification, or are blocked for some other reason.", + "creator": { + "login": "basepi", + "id": 702318, + "avatar_url": "https://avatars.githubusercontent.com/u/702318?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/basepi", + "html_url": "https://github.com/basepi", + "followers_url": "https://api.github.com/users/basepi/followers", + "following_url": "https://api.github.com/users/basepi/following{/other_user}", + "gists_url": "https://api.github.com/users/basepi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/basepi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/basepi/subscriptions", + "organizations_url": "https://api.github.com/users/basepi/orgs", + "repos_url": "https://api.github.com/users/basepi/repos", + "events_url": "https://api.github.com/users/basepi/events{/privacy}", + "received_events_url": "https://api.github.com/users/basepi/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 447, + "closed_issues": 892, + "state": "open", + "created_at": "2013-05-28T22:24:12Z", + "updated_at": "2016-06-21T22:15:37Z", + "due_on": null, + "closed_at": null + }, + "comments": 42, + "created_at": "2015-01-05T18:10:42Z", + "updated_at": "2016-05-13T08:51:46Z", + "closed_at": null, + "body": "Hello, \r\n\r\nToday salt-master welcomed me with such message:\r\n```\r\n2015-01-05 17:12:08,160 [salt.payload ][CRITICAL][26157] Could not deserialize msgpack message: This o\r\nften happens when trying to read a file not in binary mode.Please open an issue and include the following\r\nerror:\r\n2015-01-05 17:12:08,183 [salt.log.setup ][ERROR ][26157] An un-handled exception was caught by salt's\r\nglobal exception handler:\r\nUnpackValueError:\r\nTraceback (most recent call last):\r\n File \"/usr/bin/salt\", line 10, in \r\n salt_main()\r\n File \"/usr/lib/python2.7/dist-packages/salt/scripts.py\", line 351, in salt_main\r\n client.run()\r\n File \"/usr/lib/python2.7/dist-packages/salt/cli/salt.py\", line 191, in run\r\n for full_ret in cmd_func(**kwargs):\r\n File \"/usr/lib/python2.7/dist-packages/salt/client/__init__.py\", line 594, in cmd_cli\r\n **kwargs):\r\n File \"/usr/lib/python2.7/dist-packages/salt/client/__init__.py\", line 1235, in get_cli_event_returns\r\n expect_minions=(verbose or show_timeout)\r\n File \"/usr/lib/python2.7/dist-packages/salt/client/__init__.py\", line 885, in get_iter_returns\r\n for raw in ret_iter:\r\n File \"/usr/lib/python2.7/dist-packages/salt/client/__init__.py\", line 809, in get_returns_no_block\r\n raw = event.get_event_noblock()\r\n File \"/usr/lib/python2.7/dist-packages/salt/utils/event.py\", line 450, in get_event_noblock\r\n mtag, data = self.unpack(raw, self.serial)\r\n File \"/usr/lib/python2.7/dist-packages/salt/utils/event.py\", line 296, in unpack\r\n data = serial.loads(mdata)\r\n File \"/usr/lib/python2.7/dist-packages/salt/payload.py\", line 95, in loads\r\n return msgpack.loads(msg, use_list=True)\r\n File \"_unpacker.pyx\", line 119, in msgpack._unpacker.unpackb (msgpack/_unpacker.cpp:119)\r\nUnpackValueError\r\n````\r\n\r\nWhile running any ``state.*`` command on any minion.\r\n\r\nRunning ubuntu ``14.04`` and salt:\r\n```\r\nroot@salt-master:~# salt --versions-report\r\n Salt: 2015.2.0-37-g0452b43\r\n Python: 2.7.6 (default, Mar 22 2014, 22:59:56)\r\n Jinja2: 2.7.2\r\n M2Crypto: 0.21.1\r\n msgpack-python: 0.3.0\r\n msgpack-pure: Not Installed\r\n pycrypto: 2.6.1\r\n libnacl: Not Installed\r\n PyYAML: 3.10\r\n ioflo: Not Installed\r\n PyZMQ: 14.0.1\r\n RAET: Not Installed\r\n ZMQ: 4.0.4\r\n Mako: 0.9.1\r\n```", + "score": 0.30368218 + }, + { + "url": "https://api.github.com/repos/jonathanslenders/python-prompt-toolkit/issues/86", + "repository_url": "https://api.github.com/repos/jonathanslenders/python-prompt-toolkit", + "labels_url": "https://api.github.com/repos/jonathanslenders/python-prompt-toolkit/issues/86/labels{/name}", + "comments_url": "https://api.github.com/repos/jonathanslenders/python-prompt-toolkit/issues/86/comments", + "events_url": "https://api.github.com/repos/jonathanslenders/python-prompt-toolkit/issues/86/events", + "html_url": "https://github.com/jonathanslenders/python-prompt-toolkit/issues/86", + "id": 53973280, + "number": 86, + "title": "v0.26 bugs in Windows", + "user": { + "login": "darikg", + "id": 6875882, + "avatar_url": "https://avatars.githubusercontent.com/u/6875882?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/darikg", + "html_url": "https://github.com/darikg", + "followers_url": "https://api.github.com/users/darikg/followers", + "following_url": "https://api.github.com/users/darikg/following{/other_user}", + "gists_url": "https://api.github.com/users/darikg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/darikg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/darikg/subscriptions", + "organizations_url": "https://api.github.com/users/darikg/orgs", + "repos_url": "https://api.github.com/users/darikg/repos", + "events_url": "https://api.github.com/users/darikg/events{/privacy}", + "received_events_url": "https://api.github.com/users/darikg/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jonathanslenders/python-prompt-toolkit/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 15, + "created_at": "2015-01-10T22:12:02Z", + "updated_at": "2015-12-20T14:03:08Z", + "closed_at": null, + "body": "In python 2.7: Need to press meta+enter to execute a line even when multiline mode is off\r\n\r\nIn python 3.3: Fails with traceback:\r\n```\r\nraceback (most recent call last):\r\n File \"C:\\Users\\dg\\Anaconda3\\envs\\ppt3\\Scripts\\ptpython-script.py\", line 9, in \r\n load_entry_point('prompt-toolkit==0.25', 'console_scripts', 'ptpython')()\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\contrib\\entry_points\\ptpython.py\", line 77, in run\r\n\r\n startup_paths=startup_paths, always_multiline=always_multiline)\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\contrib\\repl.py\", line 189, in embed\r\n cli.start_repl(startup_paths=startup_paths)\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\contrib\\repl.py\", line 48, in start_repl\r\n on_exit=AbortAction.RAISE_EXCEPTION)\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\__init__.py\", line 251, in read_input\r\n next(g)\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\__init__.py\", line 301, in _read_input\r\n self._redraw()\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\__init__.py\", line 191, in _redraw\r\n self.renderer.render(self)\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\renderer.py\", line 465, in render\r\n style=self._style, grayed=cli.is_aborting,\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\renderer.py\", line 345, in output_screen_diff\r\n current_pos = move_cursor(screen.get_cursor_position())\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\renderer.py\", line 232, in move_cursor\r\n output.cursor_up(current_y - new.y)\r\n File \"c:\\users\\dg\\documents\\python\\python-prompt-toolkit\\prompt_toolkit\\terminal\\win32_output.py\", line 166, in cursor_up\r\n sr = self._screen_buffer_info().dwCursorPosition\r\nAttributeError: 'NoneType' object has no attribute 'dwCursorPosition'\r\n```", + "score": 3.5667417 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/328", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/328/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/328/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/328/events", + "html_url": "https://github.com/pypa/setuptools/issues/328", + "id": 144279804, + "number": 328, + "title": "32bit python on 64bit linux gets wrong platform name", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2015-01-11T13:21:04Z", + "updated_at": "2016-03-29T14:23:31Z", + "closed_at": null, + "body": "Originally reported by: **dougn (Bitbucket: [dougn](http://bitbucket.org/dougn), GitHub: [dougn](http://github.com/dougn))**\n\n----------------------------------------\n\nThis is ultimately a bug in distutils.util.get_platform, but as that would require new point releases on all versions of python, we need a better fix sooner. Setuptools is the best place for this as it is already inheriting the Distribution class for it's own use and can override the faulty platform name.\n\nThis works fine on Windows and I think OSX is ok as well, but that should be checked as well.\n\nWhen you run setuptools using a 32bit python on 32bit linux, the platname is still 'linux-x86_64', because distutils.util.get_platform() is using only the OS uname for determining the machine part for linux. \n\nFor most operations using setup tools, this can be overwritten on the commandline, but not on install. This becomes critical with wheel support, as now the problem becomes that pip will download and install the 64bit wheel instead of the 32bit one. There is also no way of overriding this. pip and wheels become useless. pip provides --install-options, and --general-options, but setuptools does not have install or general options for overriding the platname, like bdist and the other building commands do.\n\nOn windows distutils.util.get_platform() uses a backoff to sys.platform, which is 'win32' when running a 32bit python on a 64bit system.\n\nsetuptools is the proper place to deal with this issue. setuptools needs this fix for it's own building and installing. It is also the upstream provider of the Distribution class used by pip and wheel used for searching, converting and installing.\n\n\n[32.env] [dnapoleone@unv-dnapoleone1 numpy-1.9.1]$ which python2.7_32bit\n/home/dnapoleone/32.env/bin/python2.7_32bit\n[32.env] [dnapoleone@unv-dnapoleone1 numpy-1.9.1]$ python2.7_32bit ./setup.py bdist -h\nRunning from numpy source directory.\n/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'test_suite'\n warnings.warn(msg)\nCommon commands: (see '--help-commands' for more)\n\n setup.py build will build the package underneath 'build/'\n setup.py install will install the package\n\nGlobal options:\n --verbose (-v) run verbosely (default)\n --quiet (-q) run quietly (turns verbosity off)\n --dry-run (-n) don't actually do anything\n --help (-h) show detailed help message\n --no-user-cfg ignore pydistutils.cfg in your home directory\n\nOptions for 'bdist' command:\n --bdist-base (-b) temporary directory for creating built distributions\n --plat-name (-p) platform name to embed in generated filenames (**default:\n linux-x86_64**)\n --formats formats for distribution (comma-separated list)\n --dist-dir (-d) directory to put final built distributions in [default:\n dist]\n --skip-build skip rebuilding everything (for testing/debugging)\n --owner (-u) Owner name used when creating a tar file [default:\n current user]\n --group (-g) Group name used when creating a tar file [default:\n current group]\n --help-formats lists available distribution formats\n\nusage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]\n or: setup.py --help [cmd1 cmd2 ...]\n or: setup.py --help-commands\n or: setup.py cmd --help\n\n\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/328\n", + "score": 0.8846743 + }, + { + "url": "https://api.github.com/repos/flyingrub/scdl/issues/37", + "repository_url": "https://api.github.com/repos/flyingrub/scdl", + "labels_url": "https://api.github.com/repos/flyingrub/scdl/issues/37/labels{/name}", + "comments_url": "https://api.github.com/repos/flyingrub/scdl/issues/37/comments", + "events_url": "https://api.github.com/repos/flyingrub/scdl/issues/37/events", + "html_url": "https://github.com/flyingrub/scdl/issues/37", + "id": 53996297, + "number": 37, + "title": "UnicodeEncodeError: 'charmap' codec can't encode ... character maps to ", + "user": { + "login": "zvpxz", + "id": 10487353, + "avatar_url": "https://avatars.githubusercontent.com/u/10487353?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/zvpxz", + "html_url": "https://github.com/zvpxz", + "followers_url": "https://api.github.com/users/zvpxz/followers", + "following_url": "https://api.github.com/users/zvpxz/following{/other_user}", + "gists_url": "https://api.github.com/users/zvpxz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zvpxz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zvpxz/subscriptions", + "organizations_url": "https://api.github.com/users/zvpxz/orgs", + "repos_url": "https://api.github.com/users/zvpxz/repos", + "events_url": "https://api.github.com/users/zvpxz/events{/privacy}", + "received_events_url": "https://api.github.com/users/zvpxz/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/flyingrub/scdl/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/flyingrub/scdl/labels/Windows", + "name": "Windows", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 20, + "created_at": "2015-01-11T16:28:34Z", + "updated_at": "2016-04-24T16:44:07Z", + "closed_at": null, + "body": "![scdl](https://cloud.githubusercontent.com/assets/10487353/5695887/85bbd7ec-9984-11e4-83ab-54dd9260b06d.png)\r\n\r\n\r\nTraceback (most recent call last):\r\n File \"scdl.py\", line 408, in \r\n main()\r\n File \"scdl.py\", line 87, in main\r\n parse_url(arguments[\"-l\"])\r\n File \"scdl.py\", line 160, in parse_url\r\n download_user_tracks(item)\r\n File \"scdl.py\", line 228, in download_user_tracks\r\n download_track(track)\r\n File \"scdl.py\", line 322, in download_track\r\n print(\"Downloading \" + title)\r\n File \"C:\\Python34\\lib\\encodings\\cp437.py\", line 19, in encode\r\n return codecs.charmap_encode(input,self.errors,encoding_map)[0]\r\nUnicodeEncodeError: 'charmap' codec can't encode characters in position 12-18: character maps to \r\n\r\nI've tried downloading using the single and all-songs method to download. The song title is \"jungle\" not jungle and I guess it's having trouble encoding those characters. I've read somewhere on overstock that python can use the latin-1 charmap? since it has most if not all of the characters? I've taken for understanding that it has more characters than UTF-8.\r\n", + "score": 0.7277776 + }, + { + "url": "https://api.github.com/repos/diging/tethne/issues/56", + "repository_url": "https://api.github.com/repos/diging/tethne", + "labels_url": "https://api.github.com/repos/diging/tethne/issues/56/labels{/name}", + "comments_url": "https://api.github.com/repos/diging/tethne/issues/56/comments", + "events_url": "https://api.github.com/repos/diging/tethne/issues/56/events", + "html_url": "https://github.com/diging/tethne/issues/56", + "id": 54017164, + "number": 56, + "title": "KeyError while trying to create a topicmodel", + "user": { + "login": "khalidkhannz78PK", + "id": 8924273, + "avatar_url": "https://avatars.githubusercontent.com/u/8924273?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/khalidkhannz78PK", + "html_url": "https://github.com/khalidkhannz78PK", + "followers_url": "https://api.github.com/users/khalidkhannz78PK/followers", + "following_url": "https://api.github.com/users/khalidkhannz78PK/following{/other_user}", + "gists_url": "https://api.github.com/users/khalidkhannz78PK/gists{/gist_id}", + "starred_url": "https://api.github.com/users/khalidkhannz78PK/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/khalidkhannz78PK/subscriptions", + "organizations_url": "https://api.github.com/users/khalidkhannz78PK/orgs", + "repos_url": "https://api.github.com/users/khalidkhannz78PK/repos", + "events_url": "https://api.github.com/users/khalidkhannz78PK/events{/privacy}", + "received_events_url": "https://api.github.com/users/khalidkhannz78PK/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/diging/tethne/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/diging/tethne/milestones/7", + "html_url": "https://github.com/diging/tethne/milestones/v2.0-windows", + "labels_url": "https://api.github.com/repos/diging/tethne/milestones/7/labels", + "id": 1134839, + "number": 7, + "title": "v2.0-windows", + "description": null, + "creator": { + "login": "erickpeirson", + "id": 3451594, + "avatar_url": "https://avatars.githubusercontent.com/u/3451594?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/erickpeirson", + "html_url": "https://github.com/erickpeirson", + "followers_url": "https://api.github.com/users/erickpeirson/followers", + "following_url": "https://api.github.com/users/erickpeirson/following{/other_user}", + "gists_url": "https://api.github.com/users/erickpeirson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/erickpeirson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/erickpeirson/subscriptions", + "organizations_url": "https://api.github.com/users/erickpeirson/orgs", + "repos_url": "https://api.github.com/users/erickpeirson/repos", + "events_url": "https://api.github.com/users/erickpeirson/events{/privacy}", + "received_events_url": "https://api.github.com/users/erickpeirson/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 1, + "closed_issues": 0, + "state": "open", + "created_at": "2015-05-26T22:02:33Z", + "updated_at": "2015-05-26T22:11:25Z", + "due_on": null, + "closed_at": null + }, + "comments": 7, + "created_at": "2015-01-12T03:14:30Z", + "updated_at": "2015-05-26T22:02:51Z", + "closed_at": null, + "body": "Hi there,\r\n\r\nI have been trying to follow the tutorial on topic modelling on the main tethne website. I installed anaconda, tethne, nltk, and also mallet. But when I run the line \r\n\r\nMyLDAModel = MyManager.build(Z=50, max_iter=300, prep=True)\r\n\r\ni get the following error \r\n\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"//anaconda/lib/python2.7/site-packages/tethne/model/managers/__init__.py\", line 108, in build\r\n self.prep()\r\n File \"//anaconda/lib/python2.7/site-packages/tethne/model/managers/__init__.py\", line 89, in prep\r\n self._generate_corpus(meta)\r\n File \"//anaconda/lib/python2.7/site-packages/tethne/model/managers/mallet.py\", line 152, in _generate_corpus\r\n vocab=self.D.features[self.feature]['index'] )\r\n File \"//anaconda/lib/python2.7/site-packages/tethne/writers/corpora.py\", line 59, in to_documents\r\n meta += [ str(metadict[p][f]) for f in metakeys ]\r\nKeyError: '10.1525/rac.2006.16.1.95'\r\n\r\nI will appreciate all the help in this regard ", + "score": 0.6112414 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/19846", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/19846/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/19846/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/19846/events", + "html_url": "https://github.com/saltstack/salt/issues/19846", + "id": 54773369, + "number": 19846, + "title": "Calling saltcloud.* modules and boto* modules on Windows", + "user": { + "login": "highlyunavailable", + "id": 6266125, + "avatar_url": "https://avatars.githubusercontent.com/u/6266125?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/highlyunavailable", + "html_url": "https://github.com/highlyunavailable", + "followers_url": "https://api.github.com/users/highlyunavailable/followers", + "following_url": "https://api.github.com/users/highlyunavailable/following{/other_user}", + "gists_url": "https://api.github.com/users/highlyunavailable/gists{/gist_id}", + "starred_url": "https://api.github.com/users/highlyunavailable/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/highlyunavailable/subscriptions", + "organizations_url": "https://api.github.com/users/highlyunavailable/orgs", + "repos_url": "https://api.github.com/users/highlyunavailable/repos", + "events_url": "https://api.github.com/users/highlyunavailable/events{/privacy}", + "received_events_url": "https://api.github.com/users/highlyunavailable/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Platform", + "name": "Platform", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Windows", + "name": "Windows", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "UtahDave", + "id": 306240, + "avatar_url": "https://avatars.githubusercontent.com/u/306240?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/UtahDave", + "html_url": "https://github.com/UtahDave", + "followers_url": "https://api.github.com/users/UtahDave/followers", + "following_url": "https://api.github.com/users/UtahDave/following{/other_user}", + "gists_url": "https://api.github.com/users/UtahDave/gists{/gist_id}", + "starred_url": "https://api.github.com/users/UtahDave/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/UtahDave/subscriptions", + "organizations_url": "https://api.github.com/users/UtahDave/orgs", + "repos_url": "https://api.github.com/users/UtahDave/repos", + "events_url": "https://api.github.com/users/UtahDave/events{/privacy}", + "received_events_url": "https://api.github.com/users/UtahDave/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/48", + "html_url": "https://github.com/saltstack/salt/milestones/Under%20Review", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/48/labels", + "id": 856250, + "number": 48, + "title": "Under Review", + "description": "", + "creator": { + "login": "ssgward", + "id": 8439595, + "avatar_url": "https://avatars.githubusercontent.com/u/8439595?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ssgward", + "html_url": "https://github.com/ssgward", + "followers_url": "https://api.github.com/users/ssgward/followers", + "following_url": "https://api.github.com/users/ssgward/following{/other_user}", + "gists_url": "https://api.github.com/users/ssgward/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ssgward/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ssgward/subscriptions", + "organizations_url": "https://api.github.com/users/ssgward/orgs", + "repos_url": "https://api.github.com/users/ssgward/repos", + "events_url": "https://api.github.com/users/ssgward/events{/privacy}", + "received_events_url": "https://api.github.com/users/ssgward/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 15, + "closed_issues": 23, + "state": "open", + "created_at": "2014-11-06T17:18:17Z", + "updated_at": "2016-03-28T21:21:23Z", + "due_on": null, + "closed_at": null + }, + "comments": 3, + "created_at": "2015-01-19T14:56:31Z", + "updated_at": "2015-05-26T20:54:03Z", + "closed_at": null, + "body": "I'm working on a masterless Windows setup process on EC2 and I'm having trouble getting boto and salt-cloud working.\r\n\r\nI've installed Python 2.7.9 and added the Boto module with `pip install boto`, but when I go to import it inside of Salt, I get:\r\n\r\n```\r\n File \"c:\\Python27\\lib\\site-packages\\boto\\exception.py\", line 28, in \r\n import xml.sax\r\nImportError: No module named sax\r\n```\r\n\r\nI think my PYTHONPATH is set correctly:\r\n\r\n```C:\\salt>echo %PYTHONPATH%\r\nC:\\Python27;C:\\Python27\\Lib;C:\\Python27\\Lib\\site-packages```\r\n\r\nBut Salt doesn't seem to be using it:\r\n`['C:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\library.zip', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\esky-0.9.8-py2.7.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\jinja2-2.7.1-py2.7.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\markupsafe-0.18-py2.7.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-am64\\\\msgpack_python-0.4.2-py2.7-win-amd64.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\psutil-2.1.0-py2.7-win-amd64.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\pyzmq-14.1.1-py2.7-win-amd64.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\salt-2014.7.1-py2.7.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\setuptools-1.1.6-py2.7.egg', 'c:\\\\salt\\\\salt-2014.7.1.win-amd64\\\\wmi-1.4.9-py2.7.egg', 'C:\\\\salt\\\\salt-2014.7.1.win-amd64', 'c:\\\\Python27', 'c:\\\\Python27\\\\lib\\\\site-packages']`\r\n\r\nI assume this is something to do with how the Python library is vendored into the Salt windows installer directory.\r\n\r\nI also tried making a .egg file and dropping it into the Salt directory, which had the same error until I manually shoved lib/xml/sax.pyc and lib/logging/config.pyc into the library.zip file.\r\n\r\nMy use case is that I'm want to use the salt-cloud modules (http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cloud.html) to look up other machines in EC2 to get their IPs (rather than using a master and a mine) and also add the machine to load balancers/DNS etc.\r\n\r\nI'd like to avoid doing my own Windows fork of Salt just to add a few additional modules. Does anyone have any advice on how to do this? I really would like to be able to use additional modules with Salt, but the Windows packaging process seems to make that very difficult without putting the modules in at build time.\r\n\r\nIf I don't use salt (just import boto) from a normal python prompt, it works fine because xml.sax is in the Python Path because the library is not overridden by the zip file.\r\n\r\nI'm also looking for any guidance to adding modules to Windows minions regardless of the exact package. For example, the Softlayer module for salt-cloud (we also use Softlayer) requires that the Softlayer python package be installed, and the EC2 module for salt-cloud wants apache-libcloud. What's the best way to get these onto Windows minions?", + "score": 2.38537 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/337", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/337/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/337/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/337/events", + "html_url": "https://github.com/pypa/setuptools/issues/337", + "id": 144279935, + "number": 337, + "title": "Windows Launcher mishandles CTRL-C", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/trivial", + "name": "trivial", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-01-22T19:56:57Z", + "updated_at": "2016-03-29T14:23:59Z", + "closed_at": null, + "body": "Originally reported by: **acaron (Bitbucket: [acaron](http://bitbucket.org/acaron), GitHub: [acaron](http://github.com/acaron))**\n\n----------------------------------------\n\nI've been experiencing this strange error case where CTRL-C is not properly forwarded, so I started looking into the `launcher.c` file to see if I can fix it. Turns out it can't be truly fixed (and I'll explain why shortly), but I noticed some other inconsitencies while I was looking at the code.\n\nFirst, `GenerateConsoleCtrlEvent()` is called incorrectly. The first argument should be the event to generate, not the child PID (the 2nd argument designates the target process group). This value can only be `CTRL_C_EVENT` (0) or `CTRL_BREAK_EVENT` (1), so this call is no-op unless the child process PID is 0 or 1 (impossible on Windows). To confirm this, you can simply replace this line:\n\n GenerateConsoleCtrlEvent(child_pid,0);\n\nwith this:\n\n if (!GenerateConsoleCtrlEvent(child_pid,0)) {\n fprintf(stderr, \"failed to forward CTRL-C (error: %d).\\n\", GetLastError());\n }\n\nThis will consistenly print \"failed to forward CTRL-C (error: 87).\" every time you press CTRL-C (87 is \"invalid parameter\").\n\nSecond, it should not be called at all. The CTRL-C event is automatically sent to all processes in the same process group, which means that the child process gets the CTRL-C even if you stop generating the event. In addition, if you fix the call to this:\n\n GenerateConsoleCtrlEvent(control_type, 0);\n\nand add a print statement in the console control handler, you will notice that both the launcher and the child process get the CTRL-C event more than once because the launcher is sending this signal to itself, which creates a quasi infinite feedback loop (the control handler is run in a special background thread so a race condition allows it to terminate after the launcher has been spamming itself for a while).\n\nThird, the console control handler should return `FALSE` for control events it doesn't handle. The current implementation returns `TRUE` even if the event is not CTRL-C.\n\nLast, if `CreateProcessA()` or `GetExitCodeProcess()` fail, the launcher returns 0 as the exit status which is misleading for the calling program.\n\nNow, to get back to my original problem: if you use the launcher to start a Python script which stops when there is no more input, like this:\n\n try:\n line = sys.stdin.readline().strip()\n while line:\n # ...\n line = sys.stdin.readline().strip()\n except KeyboardInterrupt:\n pass\n finally:\n print 'Cleaning up.'\n\nand you terminate this script using CTRL-C, sometimes the `KeyboardInterrupt` exception is raised in the `finally` handler. AFAICT, there is a race condition that's caused by Windows: pressing CTRL-C shuts down the standard input, causing it to return an empty line before the CTRL-C event is propagated to all child processes in the process group. To confirm this, you can add a simple sleep after exhausting the standard input, which lets the time for the system to propagate the CTRL-C event and ensures Python's `KeyboardInterrupt` exception is raised before the program's shutdown sequence starts.\n\n try:\n line = sys.stdin.readline().strip()\n while line:\n # ...\n line = sys.stdin.readline().strip()\n # Ensure we get the CTRL-C events on Windows when launched\n # through a distribute/setuptools wrapper executable.\n if os.name == 'nt':\n time.sleep(25)\n except KeyboardInterrupt:\n pass\n finally:\n print 'Cleaning up.'\n\nAFAICT, there is no known way to fix this race condition in the setuptools launcher. However, it would be nice if this quirk was documented as a known problem.\n\nI wrote a pair of C programs to investigate this issue. I'm attaching them in case someone wants to experiment with the errors I'm reporting.\n\nCheers,\n\nAndré\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/337\n", + "score": 3.9262342 + }, + { + "url": "https://api.github.com/repos/OpenHydrology/OH-Auto-Statistical/issues/7", + "repository_url": "https://api.github.com/repos/OpenHydrology/OH-Auto-Statistical", + "labels_url": "https://api.github.com/repos/OpenHydrology/OH-Auto-Statistical/issues/7/labels{/name}", + "comments_url": "https://api.github.com/repos/OpenHydrology/OH-Auto-Statistical/issues/7/comments", + "events_url": "https://api.github.com/repos/OpenHydrology/OH-Auto-Statistical/issues/7/events", + "html_url": "https://github.com/OpenHydrology/OH-Auto-Statistical/issues/7", + "id": 55649671, + "number": 7, + "title": "Windows installer does not work behind proxy", + "user": { + "login": "faph", + "id": 8397805, + "avatar_url": "https://avatars.githubusercontent.com/u/8397805?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/faph", + "html_url": "https://github.com/faph", + "followers_url": "https://api.github.com/users/faph/followers", + "following_url": "https://api.github.com/users/faph/following{/other_user}", + "gists_url": "https://api.github.com/users/faph/gists{/gist_id}", + "starred_url": "https://api.github.com/users/faph/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/faph/subscriptions", + "organizations_url": "https://api.github.com/users/faph/orgs", + "repos_url": "https://api.github.com/users/faph/repos", + "events_url": "https://api.github.com/users/faph/events{/privacy}", + "received_events_url": "https://api.github.com/users/faph/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/OpenHydrology/OH-Auto-Statistical/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "faph", + "id": 8397805, + "avatar_url": "https://avatars.githubusercontent.com/u/8397805?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/faph", + "html_url": "https://github.com/faph", + "followers_url": "https://api.github.com/users/faph/followers", + "following_url": "https://api.github.com/users/faph/following{/other_user}", + "gists_url": "https://api.github.com/users/faph/gists{/gist_id}", + "starred_url": "https://api.github.com/users/faph/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/faph/subscriptions", + "organizations_url": "https://api.github.com/users/faph/orgs", + "repos_url": "https://api.github.com/users/faph/repos", + "events_url": "https://api.github.com/users/faph/events{/privacy}", + "received_events_url": "https://api.github.com/users/faph/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 12, + "created_at": "2015-01-27T17:41:32Z", + "updated_at": "2015-02-18T11:27:52Z", + "closed_at": null, + "body": "The Windows installer uses conda to install the application packages. Conda needs proxy details for it to work behind a proxy. ", + "score": 2.6294718 + }, + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/issues/53", + "repository_url": "https://api.github.com/repos/davide-romanini/comictagger", + "labels_url": "https://api.github.com/repos/davide-romanini/comictagger/issues/53/labels{/name}", + "comments_url": "https://api.github.com/repos/davide-romanini/comictagger/issues/53/comments", + "events_url": "https://api.github.com/repos/davide-romanini/comictagger/issues/53/events", + "html_url": "https://github.com/davide-romanini/comictagger/issues/53", + "id": 56386516, + "number": 53, + "title": "Issue identification failes due to missing PIL", + "user": { + "login": "davide-romanini", + "id": 731199, + "avatar_url": "https://avatars.githubusercontent.com/u/731199?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/davide-romanini", + "html_url": "https://github.com/davide-romanini", + "followers_url": "https://api.github.com/users/davide-romanini/followers", + "following_url": "https://api.github.com/users/davide-romanini/following{/other_user}", + "gists_url": "https://api.github.com/users/davide-romanini/gists{/gist_id}", + "starred_url": "https://api.github.com/users/davide-romanini/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/davide-romanini/subscriptions", + "organizations_url": "https://api.github.com/users/davide-romanini/orgs", + "repos_url": "https://api.github.com/users/davide-romanini/repos", + "events_url": "https://api.github.com/users/davide-romanini/events{/privacy}", + "received_events_url": "https://api.github.com/users/davide-romanini/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/labels/imported", + "name": "imported", + "color": "FFFFFF" + }, + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/labels/Priority-Medium", + "name": "Priority-Medium", + "color": "FFFFFF" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-02-03T14:46:30Z", + "updated_at": "2015-02-03T14:46:42Z", + "closed_at": null, + "body": "_From [sas...@gmail.com](https://code.google.com/u/101368042270943327607/) on June 27, 2014 00:04:51_\n\nWhat version of ComicTagger are you using? ComicTagger v1.1.15-beta On what operating system (Mac, Linux, Windows)? What version? Linux / Ubuntu 13.10 GUI or command line? GUI What steps will reproduce the problem? 1. Select item(s) in the list of comics\r\n2. Do Auto-tag\r\n3. Fail - window just opens and closes. What is the expected output? What do you see instead? The last message visible in the window before it closes is \"Python Imaging Library (PIL) is not available and is needed for issue identification\" Please provide any additional information below. doing \"from PIL import WebPImagePlugin\" on this system returns\r\nImportError: cannot import name _webp\r\n\r\nCommenting out comictaggerlib/issueidentifier.py:339 \"return self.match_list\" after PIL check, makes it all work again even if \"PIL\" message appears during identification. \r\n\r\nThis might be python-pil packaging issue but still it should not break CT.\n\n_Original issue: http://code.google.com/p/comictagger/issues/detail?id=53_", + "score": 1.1049227 + }, + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/issues/54", + "repository_url": "https://api.github.com/repos/davide-romanini/comictagger", + "labels_url": "https://api.github.com/repos/davide-romanini/comictagger/issues/54/labels{/name}", + "comments_url": "https://api.github.com/repos/davide-romanini/comictagger/issues/54/comments", + "events_url": "https://api.github.com/repos/davide-romanini/comictagger/issues/54/events", + "html_url": "https://github.com/davide-romanini/comictagger/issues/54", + "id": 56386552, + "number": 54, + "title": "Python Imaging library is not available and is needed for issue identification...", + "user": { + "login": "davide-romanini", + "id": 731199, + "avatar_url": "https://avatars.githubusercontent.com/u/731199?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/davide-romanini", + "html_url": "https://github.com/davide-romanini", + "followers_url": "https://api.github.com/users/davide-romanini/followers", + "following_url": "https://api.github.com/users/davide-romanini/following{/other_user}", + "gists_url": "https://api.github.com/users/davide-romanini/gists{/gist_id}", + "starred_url": "https://api.github.com/users/davide-romanini/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/davide-romanini/subscriptions", + "organizations_url": "https://api.github.com/users/davide-romanini/orgs", + "repos_url": "https://api.github.com/users/davide-romanini/repos", + "events_url": "https://api.github.com/users/davide-romanini/events{/privacy}", + "received_events_url": "https://api.github.com/users/davide-romanini/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/labels/imported", + "name": "imported", + "color": "FFFFFF" + }, + { + "url": "https://api.github.com/repos/davide-romanini/comictagger/labels/Priority-Medium", + "name": "Priority-Medium", + "color": "FFFFFF" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2015-02-03T14:46:48Z", + "updated_at": "2015-02-03T14:47:11Z", + "closed_at": null, + "body": "_From [murf...@gmail.com](https://code.google.com/u/116469566441608387730/) on June 27, 2014 18:36:45_\n\nWhat version of ComicTagger are you using? 1.1.15-beta On what operating system (Mac, Linux, Windows)? What version? linux GUI or command line? gui What steps will reproduce the problem? 1.Open folder filled with comics\r\n2.select a comic from list on right\r\n3.click auto-tag or auto-identify What is the expected output? What do you see instead? It gives an error when the auto-identify button is clicked and then the matches are displayed in the search box behind it. I can then manually click the OK button to load the tags. If I use auto-tag then the error is displayed in the cli as the following. \r\n\r\nPython Imaging Library (PIL) is not available and is needed for issue identification.\r\nOnline search: No match found. Save aborted\r\n\n============================================================\r\nAuto-Tagging 28 of 100 Please provide any additional information below. PIL is installed properly on my system. Also, all other dependencies are installed as per the instructions.\n\n_Original issue: http://code.google.com/p/comictagger/issues/detail?id=54_", + "score": 0.4688256 + }, + { + "url": "https://api.github.com/repos/pingo-io/pingo-py/issues/72", + "repository_url": "https://api.github.com/repos/pingo-io/pingo-py", + "labels_url": "https://api.github.com/repos/pingo-io/pingo-py/issues/72/labels{/name}", + "comments_url": "https://api.github.com/repos/pingo-io/pingo-py/issues/72/comments", + "events_url": "https://api.github.com/repos/pingo-io/pingo-py/issues/72/events", + "html_url": "https://github.com/pingo-io/pingo-py/issues/72", + "id": 57859884, + "number": 72, + "title": "pingo.detect.MyBoard() doesn't detect Arduino with Firmata with x86 Operating Systems", + "user": { + "login": "rimolive", + "id": 813430, + "avatar_url": "https://avatars.githubusercontent.com/u/813430?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rimolive", + "html_url": "https://github.com/rimolive", + "followers_url": "https://api.github.com/users/rimolive/followers", + "following_url": "https://api.github.com/users/rimolive/following{/other_user}", + "gists_url": "https://api.github.com/users/rimolive/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rimolive/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rimolive/subscriptions", + "organizations_url": "https://api.github.com/users/rimolive/orgs", + "repos_url": "https://api.github.com/users/rimolive/repos", + "events_url": "https://api.github.com/users/rimolive/events{/privacy}", + "received_events_url": "https://api.github.com/users/rimolive/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pingo-io/pingo-py/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/pingo-io/pingo-py/labels/top%20priority", + "name": "top priority", + "color": "eb6420" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 4, + "created_at": "2015-02-16T22:40:59Z", + "updated_at": "2015-09-14T21:26:55Z", + "closed_at": null, + "body": "I'm running a x86 Windows system and Arduino can't be detected from this system. Need to find a way to solve this issue without affect the entire detection process.\r\n\r\n", + "score": 0.9106231 + }, + { + "url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client/issues/131", + "repository_url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client", + "labels_url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client/issues/131/labels{/name}", + "comments_url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client/issues/131/comments", + "events_url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client/issues/131/events", + "html_url": "https://github.com/Anaconda-Platform/anaconda-client/issues/131", + "id": 60751898, + "number": 131, + "title": "Binstar should display user-friendly error message when unable to contact server", + "user": { + "login": "tswicegood", + "id": 4328, + "avatar_url": "https://avatars.githubusercontent.com/u/4328?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tswicegood", + "html_url": "https://github.com/tswicegood", + "followers_url": "https://api.github.com/users/tswicegood/followers", + "following_url": "https://api.github.com/users/tswicegood/following{/other_user}", + "gists_url": "https://api.github.com/users/tswicegood/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tswicegood/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tswicegood/subscriptions", + "organizations_url": "https://api.github.com/users/tswicegood/orgs", + "repos_url": "https://api.github.com/users/tswicegood/repos", + "events_url": "https://api.github.com/users/tswicegood/events{/privacy}", + "received_events_url": "https://api.github.com/users/tswicegood/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/Anaconda-Platform/anaconda-client/labels/enhancement", + "name": "enhancement", + "color": "84b6eb" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-03-12T00:16:33Z", + "updated_at": "2015-03-12T01:11:16Z", + "closed_at": null, + "body": "Attempting to login on Windows 8 via Powershell or CMD, and I receive the following traceback after entering my password:\r\n\r\n```\r\nPS C:\\Users\\builder> binstar login\r\nUsing binstar api site https://api.binstar.org\r\nUsername: tswicegood\r\ntswicegood's Password:\r\n[ConnectionError] ('Connection aborted.', gaierror(11001, 'getaddrinfo failed'))\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\builder\\Miniconda\\Scripts\\binstar-script.py\", line 9, in \r\n load_entry_point('binstar==0.10.1', 'console_scripts', 'binstar')()\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\binstar_client\\scripts\\cli.py\", line 94, in main\r\n description=__doc__, version=version)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\binstar_client\\scripts\\cli.py\", line 76, in binstar_main\r\n return args.main(args)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\binstar_client\\commands\\login.py\", line 92, in main\r\n interactive_login(args)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\binstar_client\\commands\\login.py\", line 87, in interactive_login\r\n token = interactive_get_token(args)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\binstar_client\\commands\\login.py\", line 57, in interactive_get_token\r\n hostname=hostname)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\binstar_client\\__init__.py\", line 88, in authenticate\r\n res = self.session.post(url, auth=(username, password), data=data, headers=headers)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\requests\\sessions.py\", line 504, in post\r\n return self.request('POST', url, data=data, json=json, **kwargs)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\requests\\sessions.py\", line 461, in request\r\n resp = self.send(prep, **send_kwargs)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\requests\\sessions.py\", line 573, in send\r\n r = adapter.send(request, **kwargs)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\requests\\adapters.py\", line 415, in send\r\n raise ConnectionError(err, request=request)\r\nConnectionError: ('Connection aborted.', gaierror(11001, 'getaddrinfo failed'))\r\n```\r\n\r\nThis is binstar 0.10.1. I've tried both the conda installed and pip installed flavors. Neither works.", + "score": 0.60049665 + }, + { + "url": "https://api.github.com/repos/conda/conda-build/issues/346", + "repository_url": "https://api.github.com/repos/conda/conda-build", + "labels_url": "https://api.github.com/repos/conda/conda-build/issues/346/labels{/name}", + "comments_url": "https://api.github.com/repos/conda/conda-build/issues/346/comments", + "events_url": "https://api.github.com/repos/conda/conda-build/issues/346/events", + "html_url": "https://github.com/conda/conda-build/issues/346", + "id": 60757969, + "number": 346, + "title": "Unable to build on a fresh Windows environment with source.git_url", + "user": { + "login": "tswicegood", + "id": 4328, + "avatar_url": "https://avatars.githubusercontent.com/u/4328?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tswicegood", + "html_url": "https://github.com/tswicegood", + "followers_url": "https://api.github.com/users/tswicegood/followers", + "following_url": "https://api.github.com/users/tswicegood/following{/other_user}", + "gists_url": "https://api.github.com/users/tswicegood/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tswicegood/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tswicegood/subscriptions", + "organizations_url": "https://api.github.com/users/tswicegood/orgs", + "repos_url": "https://api.github.com/users/tswicegood/repos", + "events_url": "https://api.github.com/users/tswicegood/events{/privacy}", + "received_events_url": "https://api.github.com/users/tswicegood/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/conda/conda-build/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/conda/conda-build/labels/windows", + "name": "windows", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2015-03-12T01:34:05Z", + "updated_at": "2015-03-12T18:27:53Z", + "closed_at": null, + "body": "Ran into this while trying to build the Anaconda Launcher on Win-64.\r\n\r\n```\r\nC:\\Users\\builder\\anaconda-launcher>conda build conda.recipe\r\nRemoving old build directory\r\nRemoving old work directory\r\nBUILD START: anaconda-launcher-0.2.0alpha-GIT_STUB\r\nFetching package metadata: ........\r\nSolving package specifications: .\r\nThe following packages will be downloaded:\r\n\r\n package | build\r\n ---------------------------|-----------------\r\n nwjs-0.12.0.3alpha | 1 38.0 MB\r\n gulp-3.8.11 | 0 417 KB\r\n ------------------------------------------------------------\r\n Total: 38.4 MB\r\n\r\nThe following NEW packages will be INSTALLED:\r\n\r\n bower: 1.3.12-0\r\n gulp: 3.8.11-0\r\n iojs: 1.2.0-1\r\n nwjs: 0.12.0.3alpha-1\r\n\r\nFetching packages ...\r\nnwjs-0.12.0.3a 100% |###############################| Time: 0:00:00 94.36 MB/s\r\ngulp-3.8.11-0. 100% |###############################| Time: 0:00:01 364.45 kB/s\r\nExtracting packages ...\r\n[ COMPLETE ] |#################################################| 100%\r\nLinking packages ...\r\n[ COMPLETE ] |#################################################| 100%\r\nRemoving old work directory\r\nCloning into bare repository '/cygdrive/c/Users/builder/Miniconda/conda-bld/git_\r\ncache/Users_builder_anaconda-launcher'...\r\ndone.\r\nAn unexpected error has occurred, please consider sending the\r\nfollowing traceback to the conda GitHub issue tracker at:\r\n\r\n https://github.com/conda/conda-build/issues\r\n\r\nInclude the output of the command 'conda info' in your report.\r\n\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\builder\\Miniconda\\Scripts\\conda-build-script.py\", line 4, in \r\n sys.exit(main())\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\main_build.py\",\r\n line 112, in main\r\n args_func(args, p)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\main_build.py\",\r\n line 321, in args_func\r\n args.func(args, p)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\main_build.py\",\r\n line 280, in execute\r\n channel_urls=channel_urls, override_channels=args.override_channels)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\build.py\", line\r\n 347, in build\r\n source.provide(m.path, m.get_section('source'))\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\source.py\", lin\r\ne 250, in provide\r\n git_source(meta, recipe_dir)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\source.py\", lin\r\ne 115, in git_source\r\n assert isdir(cache_repo)\r\nAssertionError\r\n```\r\n\r\nOutput of `conda info`:\r\n\r\n```\r\n\r\nC:\\Users\\builder\\anaconda-launcher>conda info\r\nCurrent conda install:\r\n\r\n platform : win-64\r\n conda version : 3.9.1\r\n conda-build version : 1.11.0\r\n python version : 2.7.9.final.0\r\n requests version : 2.5.3\r\n root environment : C:\\Users\\builder\\Miniconda (writable)\r\n default environment : C:\\Users\\builder\\Miniconda\r\n envs directories : C:\\Users\\builder\\Miniconda\\envs\r\n package cache : C:\\Users\\builder\\Miniconda\\pkgs\r\n channel URLs : https://conda.binstar.org/t//javascript/win-64/\r\n https://conda.binstar.org/t//javascript/noarch/\r\n http://repo.continuum.io/pkgs/free/win-64/\r\n http://repo.continuum.io/pkgs/free/noarch/\r\n http://repo.continuum.io/pkgs/pro/win-64/\r\n http://repo.continuum.io/pkgs/pro/noarch/\r\n config file : C:\\Users\\builder\\.condarc\r\n is foreign system : False\r\n```\r\n\r\nOutput of `conda list`:\r\n\r\n```\r\nC:\\Users\\builder\\anaconda-launcher>conda list\r\n# packages in environment at C:\\Users\\builder\\Miniconda:\r\n#\r\nbinstar 0.10.1 \r\nclyent 0.3.2 py27_0\r\nconda 3.9.1 py27_0\r\nconda-build 1.11.0 py27_0\r\nconda-env 2.1.3 py27_0\r\ndateutil 2.1 py27_2\r\njinja2 2.7.3 py27_1\r\nmarkupsafe 0.23 py27_0\r\nmenuinst 1.0.4 py27_0\r\npip 6.0.8 py27_0\r\npsutil 2.2.1 py27_0\r\npycosat 0.6.1 py27_0\r\npython 2.7.9 1\r\npython-dateutil 1.5 \r\npytz 2014.9 py27_0\r\npyyaml 3.11 py27_0\r\nrequests 2.5.3 py27_0\r\nsetuptools 14.0 py27_0\r\nsix 1.9.0 py27_0\r\n```\r\n\r\nI ran `conda update --all` to make sure everything was current. `clyent` is now at 0.3.4, instead of 0.3.2, but that's it. After updating, I ran `conda build conda.recipe` again and ended up with this:\r\n\r\n```\r\nC:\\Users\\builder\\anaconda-launcher>conda build conda.recipe\r\nRemoving old build directory\r\nRemoving old work directory\r\nBUILD START: anaconda-launcher-0.2.0alpha-GIT_STUB\r\nFetching package metadata: ........\r\nSolving package specifications: .\r\nThe following NEW packages will be INSTALLED:\r\n\r\n bower: 1.3.12-0\r\n gulp: 3.8.11-0\r\n iojs: 1.2.0-1\r\n nwjs: 0.12.0.3alpha-1\r\n\r\nLinking packages ...\r\n[ COMPLETE ] |#################################################| 100%\r\nRemoving old work directory\r\nfatal: destination path '/cygdrive/c/Users/builder/Miniconda/conda-bld/git_cache\r\n/Users_builder_anaconda-launcher' already exists and is not an empty directory.\r\nAn unexpected error has occurred, please consider sending the\r\nfollowing traceback to the conda GitHub issue tracker at:\r\n\r\n https://github.com/conda/conda-build/issues\r\n\r\nInclude the output of the command 'conda info' in your report.\r\n\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\builder\\Miniconda\\Scripts\\conda-build-script.py\", line 4, in \r\n sys.exit(main())\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\main_build.py\",\r\n line 112, in main\r\n args_func(args, p)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\main_build.py\",\r\n line 321, in args_func\r\n args.func(args, p)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\main_build.py\",\r\n line 280, in execute\r\n channel_urls=channel_urls, override_channels=args.override_channels)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\build.py\", line\r\n 347, in build\r\n source.provide(m.path, m.get_section('source'))\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\source.py\", lin\r\ne 250, in provide\r\n git_source(meta, recipe_dir)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\site-packages\\conda_build\\source.py\", lin\r\ne 114, in git_source\r\n check_call([git, 'clone', '--mirror', git_url, cache_repo_arg], cwd=recipe_d\r\nir)\r\n File \"C:\\Users\\builder\\Miniconda\\lib\\subprocess.py\", line 540, in check_call\r\n raise CalledProcessError(retcode, cmd)\r\nsubprocess.CalledProcessError: Command '['C:\\\\Program Files (x86)\\\\Git\\\\cmd\\\\git\r\n.exe', 'clone', '--mirror', u'../', u'/cygdrive/c/Users/builder/Miniconda/conda-\r\nbld/git_cache/Users_builder_anaconda-launcher']' returned non-zero exit status 1\r\n28\r\n```\r\n\r\nI've installed Git via the official installer. The first install was for the Git GUI, the second install had it add the minimal commands to the Windows Command Prompt. I think that might be what's causing the `cygdrive` code to appear. I get the same error message when running via Git Bash and CMD.\r\n\r\nGoing to try upgrading to Git for Windows v2.3 and see if that solves this issue.", + "score": 2.105983 + }, + { + "url": "https://api.github.com/repos/robertlugg/easygui/issues/67", + "repository_url": "https://api.github.com/repos/robertlugg/easygui", + "labels_url": "https://api.github.com/repos/robertlugg/easygui/issues/67/labels{/name}", + "comments_url": "https://api.github.com/repos/robertlugg/easygui/issues/67/comments", + "events_url": "https://api.github.com/repos/robertlugg/easygui/issues/67/events", + "html_url": "https://github.com/robertlugg/easygui/issues/67", + "id": 64329257, + "number": 67, + "title": "Window widths are too wide when on a dual screen system", + "user": { + "login": "noisygecko", + "id": 210260, + "avatar_url": "https://avatars.githubusercontent.com/u/210260?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/noisygecko", + "html_url": "https://github.com/noisygecko", + "followers_url": "https://api.github.com/users/noisygecko/followers", + "following_url": "https://api.github.com/users/noisygecko/following{/other_user}", + "gists_url": "https://api.github.com/users/noisygecko/gists{/gist_id}", + "starred_url": "https://api.github.com/users/noisygecko/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/noisygecko/subscriptions", + "organizations_url": "https://api.github.com/users/noisygecko/orgs", + "repos_url": "https://api.github.com/users/noisygecko/repos", + "events_url": "https://api.github.com/users/noisygecko/events{/privacy}", + "received_events_url": "https://api.github.com/users/noisygecko/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/robertlugg/easygui/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/robertlugg/easygui/labels/question", + "name": "question", + "color": "cc317c" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robertlugg", + "id": 6054540, + "avatar_url": "https://avatars.githubusercontent.com/u/6054540?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/robertlugg", + "html_url": "https://github.com/robertlugg", + "followers_url": "https://api.github.com/users/robertlugg/followers", + "following_url": "https://api.github.com/users/robertlugg/following{/other_user}", + "gists_url": "https://api.github.com/users/robertlugg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robertlugg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robertlugg/subscriptions", + "organizations_url": "https://api.github.com/users/robertlugg/orgs", + "repos_url": "https://api.github.com/users/robertlugg/repos", + "events_url": "https://api.github.com/users/robertlugg/events{/privacy}", + "received_events_url": "https://api.github.com/users/robertlugg/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 4, + "created_at": "2015-03-25T17:38:55Z", + "updated_at": "2015-03-31T14:16:13Z", + "closed_at": null, + "body": "When using a dual screen, side-by-side system the default way of calculating window sizes generates windows that are too wide. It would be better to restrict the aspect ration of the windows to some more reasonable one rather than purely going by the system screen height and width.", + "score": 0.7720231 + }, + { + "url": "https://api.github.com/repos/gijzelaerr/python-snap7/issues/42", + "repository_url": "https://api.github.com/repos/gijzelaerr/python-snap7", + "labels_url": "https://api.github.com/repos/gijzelaerr/python-snap7/issues/42/labels{/name}", + "comments_url": "https://api.github.com/repos/gijzelaerr/python-snap7/issues/42/comments", + "events_url": "https://api.github.com/repos/gijzelaerr/python-snap7/issues/42/events", + "html_url": "https://github.com/gijzelaerr/python-snap7/issues/42", + "id": 65388567, + "number": 42, + "title": "Different behavior of read_area on windows and linux. read_area throws ValueError", + "user": { + "login": "oldfellow", + "id": 5522491, + "avatar_url": "https://avatars.githubusercontent.com/u/5522491?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/oldfellow", + "html_url": "https://github.com/oldfellow", + "followers_url": "https://api.github.com/users/oldfellow/followers", + "following_url": "https://api.github.com/users/oldfellow/following{/other_user}", + "gists_url": "https://api.github.com/users/oldfellow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/oldfellow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oldfellow/subscriptions", + "organizations_url": "https://api.github.com/users/oldfellow/orgs", + "repos_url": "https://api.github.com/users/oldfellow/repos", + "events_url": "https://api.github.com/users/oldfellow/events{/privacy}", + "received_events_url": "https://api.github.com/users/oldfellow/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/gijzelaerr/python-snap7/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/gijzelaerr/python-snap7/milestones/6", + "html_url": "https://github.com/gijzelaerr/python-snap7/milestones/1.0", + "labels_url": "https://api.github.com/repos/gijzelaerr/python-snap7/milestones/6/labels", + "id": 825227, + "number": 6, + "title": "1.0", + "description": null, + "creator": { + "login": "gijzelaerr", + "id": 326308, + "avatar_url": "https://avatars.githubusercontent.com/u/326308?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gijzelaerr", + "html_url": "https://github.com/gijzelaerr", + "followers_url": "https://api.github.com/users/gijzelaerr/followers", + "following_url": "https://api.github.com/users/gijzelaerr/following{/other_user}", + "gists_url": "https://api.github.com/users/gijzelaerr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gijzelaerr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gijzelaerr/subscriptions", + "organizations_url": "https://api.github.com/users/gijzelaerr/orgs", + "repos_url": "https://api.github.com/users/gijzelaerr/repos", + "events_url": "https://api.github.com/users/gijzelaerr/events{/privacy}", + "received_events_url": "https://api.github.com/users/gijzelaerr/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 1, + "state": "open", + "created_at": "2014-10-14T08:37:31Z", + "updated_at": "2016-05-12T09:03:01Z", + "due_on": null, + "closed_at": null + }, + "comments": 17, + "created_at": "2015-03-31T07:38:51Z", + "updated_at": "2016-05-12T09:03:01Z", + "closed_at": null, + "body": "Hi,\r\nEnvironment:\r\nOS (Linux and Windows 7 ) : 64bit.\r\nsnap7-full-1.3.0.tar.gz\r\npython-snap7-0.4.tar.gz\r\n\r\nI have different behavior executing the same query on windows and linux.\r\nI want to read 6 Objects from DB2 \r\nread_area(132, 2, 0, 6)\r\n\r\nThe result on Windows is fine:\r\n00 AB CD 11 B9 01 # This matches to the data in the plc.\r\n\r\nOn Linux I get the error:\r\nFile \"/usr/local/lib/python2.6/site-packages/snap7/client.py\", line 210, in read_area\r\n return bytearray(data)\r\nValueError: byte must be in range(0, 256)\r\n\r\nFor debugging I add the following line in front of the return in line 210:\r\nprint \"\".join(\"%02x \" % b for b in data)\r\n\r\nThis gives me the Information that on linux the bytestream looks like this:\r\n00 -55 -33 11 -47 01\r\nAnd \"-55\" of course throws the ValueError.\r\n\r\nWhen I run the same query with snap7 ( cpp or plain-c ), I get the correct values on windows and linux. Therefore I guess the issue must be somewhere in the python interface.\r\n\r\nAny idea how to solve this issue?\r\n\r\nBecause I'm running python 2.6 I need to modify the util.py, because in python 2.6 the Collections doesn't provide OrderedDict.\r\nI have installed ordereddict with pip and modified line 11 in util.py:\r\n# from Collections import OrderedDict\r\nimport ordereddict\r\nMaybe this creates the issue. But I don't know how to solve, because I can't change to python 2.7.\r\n\r\nThanks in advance.", + "score": 2.779317 + }, + { + "url": "https://api.github.com/repos/conda/conda/issues/1239", + "repository_url": "https://api.github.com/repos/conda/conda", + "labels_url": "https://api.github.com/repos/conda/conda/issues/1239/labels{/name}", + "comments_url": "https://api.github.com/repos/conda/conda/issues/1239/comments", + "events_url": "https://api.github.com/repos/conda/conda/issues/1239/events", + "html_url": "https://github.com/conda/conda/issues/1239", + "id": 65638460, + "number": 1239, + "title": "pandas 0.16 can't be imported from the root environment on windows ", + "user": { + "login": "ikalev", + "id": 3067425, + "avatar_url": "https://avatars.githubusercontent.com/u/3067425?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ikalev", + "html_url": "https://github.com/ikalev", + "followers_url": "https://api.github.com/users/ikalev/followers", + "following_url": "https://api.github.com/users/ikalev/following{/other_user}", + "gists_url": "https://api.github.com/users/ikalev/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ikalev/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ikalev/subscriptions", + "organizations_url": "https://api.github.com/users/ikalev/orgs", + "repos_url": "https://api.github.com/users/ikalev/repos", + "events_url": "https://api.github.com/users/ikalev/events{/privacy}", + "received_events_url": "https://api.github.com/users/ikalev/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/conda/conda/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/conda/conda/labels/Windows", + "name": "Windows", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 10, + "created_at": "2015-04-01T09:03:43Z", + "updated_at": "2015-05-21T18:57:37Z", + "closed_at": null, + "body": "Pandas 0.15.* works fine in the root environment on windows:\r\n\r\n```shell\r\nC:\\Users\\kalev>conda update python\r\npython 2.7.6 0\r\n\r\nC:\\Users\\kalev>python -c \"import pandas\"\r\n```\r\n\r\nAfter upgrading to 0.16, pandas is not longer importable:\r\n\r\n```shell\r\nC:\\Users\\kalev>conda update pandas\r\nThe following packages will be UPDATED:\r\n pandas: 0.15.2-np19py27_1 --> 0.16.0-np19py27_1\r\n\r\nC:\\Users\\kalev>python -c \"import pandas\"\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\__init__.py\", line 47, in \r\n import pandas.core.config_init\r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\core\\config_init.py\", line 17, in \r\n from pandas.core.format import detect_console_encoding\r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\core\\format.py\", line 24, in \r\n from pandas.tseries.period import PeriodIndex, DatetimeIndex\r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\tseries\\period.py\", line 8, in \r\n import pandas.tseries.frequencies as frequencies\r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\tseries\\frequencies.py\", line 9, in \r\n from pandas.tseries.offsets import DateOffset\r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\tseries\\offsets.py\", line 2152, in \r\n class Nano(Tick):\r\n File \"C:\\Anaconda\\lib\\site-packages\\pandas\\tseries\\offsets.py\", line 2153, in Nano\r\n _inc = Timedelta(nanoseconds=1)\r\n File \"pandas\\tslib.pyx\", line 1722, in pandas.tslib.Timedelta.__new__ (pandas\\tslib.c:29707)\r\nValueError: cannot construct a TimeDelta from the passed arguments, allowed keywords are [days, seconds, microseconds, m\r\nilliseconds, minutes, hours, weeks]\r\n```\r\n\r\nIt works fine in a virtual environment, where ``python`` can be updated to 2.7.9. But 2.7.6 and 2.7.8 appear to be incompatible with ``pandas 0.16``. Is there a way to update the python package in the root environment?", + "score": 1.884768 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/2669", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/2669/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/2669/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/2669/events", + "html_url": "https://github.com/pypa/pip/issues/2669", + "id": 67446881, + "number": 2669, + "title": "pip 6.0.8 AttributeError when upgrading to 6.1.1 in virtualenv", + "user": { + "login": "ratiotile", + "id": 7064626, + "avatar_url": "https://avatars.githubusercontent.com/u/7064626?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ratiotile", + "html_url": "https://github.com/ratiotile", + "followers_url": "https://api.github.com/users/ratiotile/followers", + "following_url": "https://api.github.com/users/ratiotile/following{/other_user}", + "gists_url": "https://api.github.com/users/ratiotile/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ratiotile/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ratiotile/subscriptions", + "organizations_url": "https://api.github.com/users/ratiotile/orgs", + "repos_url": "https://api.github.com/users/ratiotile/repos", + "events_url": "https://api.github.com/users/ratiotile/events{/privacy}", + "received_events_url": "https://api.github.com/users/ratiotile/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 17, + "created_at": "2015-04-09T20:42:09Z", + "updated_at": "2016-03-03T13:34:37Z", + "closed_at": null, + "body": "Windows 7, Python 3.4.3, updated pip in base. Created virtualenv, saw that it was still on pip 6.0.8\r\n\r\nActivated venv, ran `python -m pip install pip -U`\r\n\r\nlog:\r\n```\r\nInstalling collected packages: pip\r\n Found existing installation: pip 6.0.8\r\n Uninstalling pip-6.0.8:\r\n Successfully uninstalled pip-6.0.8\r\n\r\n Rolling back uninstall of pip\r\n...\r\n result = finder(distlib_package).find(name).bytes\r\n AttributeError: 'NoneType' object has no attribute 'bytes'\r\n```\r\n\r\nHowever, next time I run pip -V, it reports pip 6.1.1, so what is the effect of the error?", + "score": 4.659275 + }, + { + "url": "https://api.github.com/repos/jonathanslenders/ptpython/issues/34", + "repository_url": "https://api.github.com/repos/jonathanslenders/ptpython", + "labels_url": "https://api.github.com/repos/jonathanslenders/ptpython/issues/34/labels{/name}", + "comments_url": "https://api.github.com/repos/jonathanslenders/ptpython/issues/34/comments", + "events_url": "https://api.github.com/repos/jonathanslenders/ptpython/issues/34/events", + "html_url": "https://github.com/jonathanslenders/ptpython/issues/34", + "id": 67905493, + "number": 34, + "title": "does not work on windows", + "user": { + "login": "bialix", + "id": 82971, + "avatar_url": "https://avatars.githubusercontent.com/u/82971?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bialix", + "html_url": "https://github.com/bialix", + "followers_url": "https://api.github.com/users/bialix/followers", + "following_url": "https://api.github.com/users/bialix/following{/other_user}", + "gists_url": "https://api.github.com/users/bialix/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bialix/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bialix/subscriptions", + "organizations_url": "https://api.github.com/users/bialix/orgs", + "repos_url": "https://api.github.com/users/bialix/repos", + "events_url": "https://api.github.com/users/bialix/events{/privacy}", + "received_events_url": "https://api.github.com/users/bialix/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jonathanslenders/ptpython/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2015-04-12T11:48:35Z", + "updated_at": "2015-12-20T13:34:29Z", + "closed_at": null, + "body": "installed with pip as recommended on your page. Trying to run:\r\n\r\nD:\\>ptpython\r\nIn [1]:\r\n\r\n\r\n\r\n\r\n\r\n [F4] Emacs 1/1 [F6] Paste mode (off) [F2] Sidebar - CPython 3.3.5 T\r\nraceback (most recent call last):\r\n File \"C:\\Python\\3.3-64\\Scripts\\ptpython-script.py\", line 9, in \r\n load_entry_point('ptpython==0.5', 'console_scripts', 'ptpython')()\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\ptpython\\entry_points\\run_ptpython.py\", line 62, in run\r\n no_colors=no_colors, startup_paths=startup_paths)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\ptpython\\repl.py\", line 208, in embed\r\n repl.start_repl(startup_paths=startup_paths)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\ptpython\\repl.py\", line 51, in start_repl\r\n on_exit=AbortAction.RAISE_EXCEPTION)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\interface.py\", line 290, in read_input\r\n next(g)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\interface.py\", line 344, in _read_input\r\n self._redraw()\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\interface.py\", line 230, in _redraw\r\n self.renderer.render(self, self.layout, self.style)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\renderer.py\", line 324, in render\r\n style=style, grayed=(cli.is_aborting or cli.is_exiting),\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\renderer.py\", line 164, in output_screen_diff\r\n current_pos = move_cursor(screen.cursor_position)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\renderer.py\", line 50, in move_cursor\r\n output.cursor_up(current_y - new.y)\r\n File \"C:\\Python\\3.3-64\\lib\\site-packages\\prompt_toolkit\\terminal\\win32_output.py\", line 166, in cursor_up\r\n sr = self._screen_buffer_info().dwCursorPosition\r\nAttributeError: 'NoneType' object has no attribute 'dwCursorPosition'\r\n\r\nD:\\>pip list\r\ndocopt (0.6.2)\r\nipython (3.1.0)\r\njedi (0.8.1)\r\npip (6.1.1)\r\nprompt-toolkit (0.31)\r\nptpython (0.5)\r\nPygments (2.0.2)\r\nPyMySQL (0.6.1)\r\npyreadline (2.0)\r\nredis (2.9.1)\r\nsetuptools (14.3)\r\nsix (1.9.0)\r\nSQLAlchemy (0.9.3)\r\ntornado (3.3.dev1)\r\nwcwidth (0.1.4)\r\nwheel (0.22.0)", + "score": 3.950607 + }, + { + "url": "https://api.github.com/repos/hsoft/dupeguru/issues/300", + "repository_url": "https://api.github.com/repos/hsoft/dupeguru", + "labels_url": "https://api.github.com/repos/hsoft/dupeguru/issues/300/labels{/name}", + "comments_url": "https://api.github.com/repos/hsoft/dupeguru/issues/300/comments", + "events_url": "https://api.github.com/repos/hsoft/dupeguru/issues/300/events", + "html_url": "https://github.com/hsoft/dupeguru/issues/300", + "id": 67947216, + "number": 300, + "title": "Add new contributor", + "user": { + "login": "hsoft", + "id": 505201, + "avatar_url": "https://avatars.githubusercontent.com/u/505201?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hsoft", + "html_url": "https://github.com/hsoft", + "followers_url": "https://api.github.com/users/hsoft/followers", + "following_url": "https://api.github.com/users/hsoft/following{/other_user}", + "gists_url": "https://api.github.com/users/hsoft/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hsoft/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hsoft/subscriptions", + "organizations_url": "https://api.github.com/users/hsoft/orgs", + "repos_url": "https://api.github.com/users/hsoft/repos", + "events_url": "https://api.github.com/users/hsoft/events{/privacy}", + "received_events_url": "https://api.github.com/users/hsoft/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/hsoft/dupeguru/labels/bug", + "name": "bug", + "color": "f7c6c7" + }, + { + "url": "https://api.github.com/repos/hsoft/dupeguru/labels/mentored", + "name": "mentored", + "color": "eb6420" + }, + { + "url": "https://api.github.com/repos/hsoft/dupeguru/labels/ready", + "name": "ready", + "color": "009800" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 21, + "created_at": "2015-04-12T19:26:55Z", + "updated_at": "2016-06-10T19:38:26Z", + "closed_at": null, + "body": "dupeGuru has currently only one maintainer, me. This is a dangerous situation that needs to be\r\ncorrected.\r\n\r\nThe goal is to eventually have another active maintainer, but before we can get there, the project\r\nneeds more contributors. It is very much lacking on that side right now.\r\n\r\nWhatever your skills, if you are remotely interestested in being a contributor, I'm interested in\r\nmentoring you. I've been saying so in the [Contribute](http://hardcoded.net/dupeguru/help/en/contribute.html) page for a while, but now I'm thinking it might be a better idea to adverstise the need for contributors in a ticket. This way, it's clear whether someone has answered the call or not.\r\n\r\nSo, if you would like to start contributing to dupeGuru but would like some guidance/mentorship, simply add a comment here, we'll get started.", + "score": 0.4142732 + }, + { + "url": "https://api.github.com/repos/chrippa/livestreamer/issues/860", + "repository_url": "https://api.github.com/repos/chrippa/livestreamer", + "labels_url": "https://api.github.com/repos/chrippa/livestreamer/issues/860/labels{/name}", + "comments_url": "https://api.github.com/repos/chrippa/livestreamer/issues/860/comments", + "events_url": "https://api.github.com/repos/chrippa/livestreamer/issues/860/events", + "html_url": "https://github.com/chrippa/livestreamer/issues/860", + "id": 69571666, + "number": 860, + "title": "Ustream.com plugin drops after few seconds", + "user": { + "login": "karlo2105", + "id": 5579457, + "avatar_url": "https://avatars.githubusercontent.com/u/5579457?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karlo2105", + "html_url": "https://github.com/karlo2105", + "followers_url": "https://api.github.com/users/karlo2105/followers", + "following_url": "https://api.github.com/users/karlo2105/following{/other_user}", + "gists_url": "https://api.github.com/users/karlo2105/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karlo2105/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karlo2105/subscriptions", + "organizations_url": "https://api.github.com/users/karlo2105/orgs", + "repos_url": "https://api.github.com/users/karlo2105/repos", + "events_url": "https://api.github.com/users/karlo2105/events{/privacy}", + "received_events_url": "https://api.github.com/users/karlo2105/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/chrippa/livestreamer/labels/bug", + "name": "bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/chrippa/livestreamer/labels/plugin", + "name": "plugin", + "color": "d7e102" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 49, + "created_at": "2015-04-20T12:02:56Z", + "updated_at": "2015-10-08T13:59:53Z", + "closed_at": null, + "body": "livestreamer -l debug \"http://www.ustream.tv/channel/tv-bor-live\" best\r\n[cli][info] Found matching plugin ustreamtv for URL http://www.ustream.tv/channel/tv-bor-live\r\n[plugin.ustreamtv][debug] Waiting for moduleInfo invoke\r\n[cli][info] Available streams: 576p+ (best), 576p+_alt_akamai, 576p+_alt_highwin\r\nds, mobile_240p (worst)\r\n[cli][info] Opening stream: 576p+ (uhs)\r\n[stream.uhs][debug] Fetching module info\r\n[cli][debug] Pre-buffering 8192 bytes\r\n[stream.uhs][debug] Adding chunk 1429507013 to queue\r\n[stream.uhs][debug] Fetching module info\r\n[cli][info] Starting player: 'C:\\Program Files\\VideoLAN\\VLC\\vlc.exe'\r\n[stream.uhs][debug] Download of chunk 1429507013 complete\r\n[cli][debug] Writing stream to output\r\n[stream.uhs][debug] Stream went offline\r\n[stream.uhs][debug] Closing worker thread\r\n[stream.uhs][debug] Closing writer thread\r\n[cli][info] Stream ended\r\n", + "score": 0.06708879 + }, + { + "url": "https://api.github.com/repos/joeferraro/MavensMate-SublimeText/issues/566", + "repository_url": "https://api.github.com/repos/joeferraro/MavensMate-SublimeText", + "labels_url": "https://api.github.com/repos/joeferraro/MavensMate-SublimeText/issues/566/labels{/name}", + "comments_url": "https://api.github.com/repos/joeferraro/MavensMate-SublimeText/issues/566/comments", + "events_url": "https://api.github.com/repos/joeferraro/MavensMate-SublimeText/issues/566/events", + "html_url": "https://github.com/joeferraro/MavensMate-SublimeText/issues/566", + "id": 69714301, + "number": 566, + "title": "Result: [OPERATION FAILED]: Whoops, unable to parse the response. Please enable logging (http://mavensmate.com/Plugins/Sublime_Text/Plugin_Logging)", + "user": { + "login": "pawarmangesh", + "id": 8614042, + "avatar_url": "https://avatars.githubusercontent.com/u/8614042?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pawarmangesh", + "html_url": "https://github.com/pawarmangesh", + "followers_url": "https://api.github.com/users/pawarmangesh/followers", + "following_url": "https://api.github.com/users/pawarmangesh/following{/other_user}", + "gists_url": "https://api.github.com/users/pawarmangesh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pawarmangesh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pawarmangesh/subscriptions", + "organizations_url": "https://api.github.com/users/pawarmangesh/orgs", + "repos_url": "https://api.github.com/users/pawarmangesh/repos", + "events_url": "https://api.github.com/users/pawarmangesh/events{/privacy}", + "received_events_url": "https://api.github.com/users/pawarmangesh/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/joeferraro/MavensMate-SublimeText/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 13, + "created_at": "2015-04-21T00:57:44Z", + "updated_at": "2015-05-11T18:30:48Z", + "closed_at": null, + "body": "I did drag the new apex project into ST3 editor and tried to create MavensMate project by right clicking on the project I am facing following error -\r\nResult: [OPERATION FAILED]: Whoops, unable to parse the response. Please enable logging (http://mavensmate.com/Plugins/Sublime_Text/Plugin_Logging)\r\n\r\nReferred previous similar issue logged and according to that did change the api version of all files from 31.0 to 30.0.\r\nAlso did change \"mm_api_version\" to 30.0\r\nWhat to do next? Could you please provide me the solution?", + "score": 0.33629873 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/23391", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/23391/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/23391/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/23391/events", + "html_url": "https://github.com/saltstack/salt/issues/23391", + "id": 73423394, + "number": 23391, + "title": "pillar.item \"key\" and pillar.get \"key\" can return different results", + "user": { + "login": "belvedere-trading", + "id": 6035921, + "avatar_url": "https://avatars.githubusercontent.com/u/6035921?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/belvedere-trading", + "html_url": "https://github.com/belvedere-trading", + "followers_url": "https://api.github.com/users/belvedere-trading/followers", + "following_url": "https://api.github.com/users/belvedere-trading/following{/other_user}", + "gists_url": "https://api.github.com/users/belvedere-trading/gists{/gist_id}", + "starred_url": "https://api.github.com/users/belvedere-trading/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/belvedere-trading/subscriptions", + "organizations_url": "https://api.github.com/users/belvedere-trading/orgs", + "repos_url": "https://api.github.com/users/belvedere-trading/repos", + "events_url": "https://api.github.com/users/belvedere-trading/events{/privacy}", + "received_events_url": "https://api.github.com/users/belvedere-trading/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Cannot%20Reproduce", + "name": "Cannot Reproduce", + "color": "c7def8" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Core", + "name": "Core", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P1", + "name": "P1", + "color": "2181ee" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Pillar", + "name": "Pillar", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/13", + "html_url": "https://github.com/saltstack/salt/milestones/Approved", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/13/labels", + "id": 9265, + "number": 13, + "title": "Approved", + "description": "All issues that are ready to be worked on, both bugs and features.", + "creator": { + "login": "thatch45", + "id": 507599, + "avatar_url": "https://avatars.githubusercontent.com/u/507599?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thatch45", + "html_url": "https://github.com/thatch45", + "followers_url": "https://api.github.com/users/thatch45/followers", + "following_url": "https://api.github.com/users/thatch45/following{/other_user}", + "gists_url": "https://api.github.com/users/thatch45/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thatch45/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thatch45/subscriptions", + "organizations_url": "https://api.github.com/users/thatch45/orgs", + "repos_url": "https://api.github.com/users/thatch45/repos", + "events_url": "https://api.github.com/users/thatch45/events{/privacy}", + "received_events_url": "https://api.github.com/users/thatch45/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 3040, + "closed_issues": 3781, + "state": "open", + "created_at": "2011-05-14T04:00:56Z", + "updated_at": "2016-06-21T19:49:47Z", + "due_on": null, + "closed_at": null + }, + "comments": 24, + "created_at": "2015-05-05T20:31:13Z", + "updated_at": "2016-01-08T19:25:31Z", + "closed_at": null, + "body": "When pillar data is updated pillar.get seems to still return the old data, while pillar.item returns the new data. Pillar.get returns the outdated pillar information even after issuing a saltutil.refresh_pillar or a saltutil.clear_cache. Restarting the minion seems to resolve the issue.\r\n\r\nTested with the following:\r\n* salt 2015.2.0rc2\r\n* CentOS 6.6 salt master\r\n* @40 CentOS 6.2-6.6 minions\r\n* @70 Windows minions (combination of workstations/servers\r\n\r\nAll minions show the problem when pillar data is changed. \r\n\r\nInital pillar (example):\r\n```yaml\r\npython:\r\n pip_server: http://pypi:80/\r\n Linux:\r\n packages:\r\n - croniter\r\n - python-dateutil\r\n temp_dir: /tmp\r\n Windows:\r\n packages:\r\n - croniter\r\n - python-dateutil\r\n temp_dir: \"c:\\\\temp\"\r\n```\r\n\r\nUpdated pillar(example):\r\n```yaml\r\npython:\r\n pip_server: http://pypi:80/\r\n Linux:\r\n versioned_packages:\r\n croniter: '0.3.5'\r\n python-dateutil: '2.3'\r\n virtualenv: '1.11.6'\r\n unversioned_packages:\r\n removed_packages:\r\n temp_dir: /tmp\r\n Windows:\r\n versioned_packages:\r\n croniter: '0.3.5'\r\n python-dateutil: '2.3'\r\n virtualenv: '1.11.6'\r\n temp_dir: \"c:\\\\temp\"\r\n```\r\n\r\nIn looking at the code for pillar.get uses __pillar__ for pillar data where as pillar.item (indirectly) uses salt.pillar.get_pillar. I did a quick patch locally to see if updating pillar.get to use items (same way pillar.item does) to get the pillar data fixes the issue. It does. Assuming nobody has issues with it, I'll submit a patch for this.", + "score": 1.0182955 + }, + { + "url": "https://api.github.com/repos/jdfreder/jupyter-pip/issues/13", + "repository_url": "https://api.github.com/repos/jdfreder/jupyter-pip", + "labels_url": "https://api.github.com/repos/jdfreder/jupyter-pip/issues/13/labels{/name}", + "comments_url": "https://api.github.com/repos/jdfreder/jupyter-pip/issues/13/comments", + "events_url": "https://api.github.com/repos/jdfreder/jupyter-pip/issues/13/events", + "html_url": "https://github.com/jdfreder/jupyter-pip/issues/13", + "id": 78149568, + "number": 13, + "title": "General issue, permissions aren't handled well.", + "user": { + "login": "jdfreder", + "id": 3292874, + "avatar_url": "https://avatars.githubusercontent.com/u/3292874?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jdfreder", + "html_url": "https://github.com/jdfreder", + "followers_url": "https://api.github.com/users/jdfreder/followers", + "following_url": "https://api.github.com/users/jdfreder/following{/other_user}", + "gists_url": "https://api.github.com/users/jdfreder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdfreder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdfreder/subscriptions", + "organizations_url": "https://api.github.com/users/jdfreder/orgs", + "repos_url": "https://api.github.com/users/jdfreder/repos", + "events_url": "https://api.github.com/users/jdfreder/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdfreder/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jdfreder/jupyter-pip/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 2, + "created_at": "2015-05-19T16:05:30Z", + "updated_at": "2015-05-27T00:02:05Z", + "closed_at": null, + "body": "I've been using this a lot lately, and I've come across many small bugs. Mostly related to permissions on the different OSes, Windows, Linux, and OSX. I have an idea I want to implement in upstream Jupyter to solve the packaging problem in a more general fashion, and if that works, I'll make sure to fix jupyter-pip to use that new mechanism behind the scenes. If the new mechanism doesn't work or gets rejected, I'll come back to jupyter-pip and polish it up.", + "score": 1.2105334 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/391", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/391/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/391/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/391/events", + "html_url": "https://github.com/pypa/setuptools/issues/391", + "id": 144280973, + "number": 391, + "title": "dependencies listed in both setup_requires and install_requires install to temporary .egg dir", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/minor", + "name": "minor", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 6, + "created_at": "2015-05-28T15:02:26Z", + "updated_at": "2016-03-29T14:27:09Z", + "closed_at": null, + "body": "Originally reported by: **james_salter (Bitbucket: [james_salter](http://bitbucket.org/james_salter), GitHub: Unknown)**\n\n----------------------------------------\n\nFound on setuptools 16.0, python 2.7.9, windows 8.\n\nTest script:\n\n from setuptools import setup\n\n package = \"football-data\"\n\n setup(\n setup_requires=[package],\n install_requires=[package],\n name=\"test_setup_requires\"\n )\n\nAfter running this script from c:\\dev, my c:\\python27\\lib\\site-packages\\easy-install.pth contains:\n\nc:/dev/.eggs/football_data-0.1.2-py2.7.egg\n\ni.e. the package has been installed with its location in the temporary .eggs directory used to fulfil the `install_requires` directive. \n\nThis doesn't happen if the `setup_requires` key is omitted - the package is then installed to site-packages as expected. And it isn't installed at all if `install_requires` is omitted, as expected.\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/391\n", + "score": 0.5442668 + }, + { + "url": "https://api.github.com/repos/robotframework/RIDE/issues/924", + "repository_url": "https://api.github.com/repos/robotframework/RIDE", + "labels_url": "https://api.github.com/repos/robotframework/RIDE/issues/924/labels{/name}", + "comments_url": "https://api.github.com/repos/robotframework/RIDE/issues/924/comments", + "events_url": "https://api.github.com/repos/robotframework/RIDE/issues/924/events", + "html_url": "https://github.com/robotframework/RIDE/issues/924", + "id": 84012519, + "number": 924, + "title": "Support wxPython 3.0", + "user": { + "login": "yanne", + "id": 159146, + "avatar_url": "https://avatars.githubusercontent.com/u/159146?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yanne", + "html_url": "https://github.com/yanne", + "followers_url": "https://api.github.com/users/yanne/followers", + "following_url": "https://api.github.com/users/yanne/following{/other_user}", + "gists_url": "https://api.github.com/users/yanne/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yanne/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yanne/subscriptions", + "organizations_url": "https://api.github.com/users/yanne/orgs", + "repos_url": "https://api.github.com/users/yanne/repos", + "events_url": "https://api.github.com/users/yanne/events{/privacy}", + "received_events_url": "https://api.github.com/users/yanne/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/robotframework/RIDE/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/robotframework/RIDE/labels/prio-high", + "name": "prio-high", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/robotframework/RIDE/milestones/81", + "html_url": "https://github.com/robotframework/RIDE/milestones/Future", + "labels_url": "https://api.github.com/repos/robotframework/RIDE/milestones/81/labels", + "id": 1152827, + "number": 81, + "title": "Future", + "description": "Valid issues that are not targeted for any upcoming release.", + "creator": { + "login": "yanne", + "id": 159146, + "avatar_url": "https://avatars.githubusercontent.com/u/159146?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/yanne", + "html_url": "https://github.com/yanne", + "followers_url": "https://api.github.com/users/yanne/followers", + "following_url": "https://api.github.com/users/yanne/following{/other_user}", + "gists_url": "https://api.github.com/users/yanne/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yanne/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yanne/subscriptions", + "organizations_url": "https://api.github.com/users/yanne/orgs", + "repos_url": "https://api.github.com/users/yanne/repos", + "events_url": "https://api.github.com/users/yanne/events{/privacy}", + "received_events_url": "https://api.github.com/users/yanne/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 102, + "closed_issues": 3, + "state": "open", + "created_at": "2015-06-06T17:04:52Z", + "updated_at": "2016-02-20T09:48:24Z", + "due_on": null, + "closed_at": null + }, + "comments": 35, + "created_at": "2015-06-02T13:02:08Z", + "updated_at": "2015-11-13T09:45:06Z", + "closed_at": null, + "body": "> *Originally submitted to [Google Code](http://code.google.com/p/robotframework-ride/issues/detail?id=888) by @yanne on 17 Nov 2011*\n\n\nWe explicitly select wxPython 2.8 if it is found using wxversion.select('2.8') in roboide/__init__.py\r\n\r\nHowever, wxPython 2.9 has been available for some time, so we should prefer that if it's found.\n\n", + "score": 0.33738166 + }, + { + "url": "https://api.github.com/repos/xonsh/xonsh/issues/266", + "repository_url": "https://api.github.com/repos/xonsh/xonsh", + "labels_url": "https://api.github.com/repos/xonsh/xonsh/issues/266/labels{/name}", + "comments_url": "https://api.github.com/repos/xonsh/xonsh/issues/266/comments", + "events_url": "https://api.github.com/repos/xonsh/xonsh/issues/266/events", + "html_url": "https://github.com/xonsh/xonsh/issues/266", + "id": 87803843, + "number": 266, + "title": "xonsh startup script fails on some platforms", + "user": { + "login": "otakucode", + "id": 2532847, + "avatar_url": "https://avatars.githubusercontent.com/u/2532847?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/otakucode", + "html_url": "https://github.com/otakucode", + "followers_url": "https://api.github.com/users/otakucode/followers", + "following_url": "https://api.github.com/users/otakucode/following{/other_user}", + "gists_url": "https://api.github.com/users/otakucode/gists{/gist_id}", + "starred_url": "https://api.github.com/users/otakucode/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/otakucode/subscriptions", + "organizations_url": "https://api.github.com/users/otakucode/orgs", + "repos_url": "https://api.github.com/users/otakucode/repos", + "events_url": "https://api.github.com/users/otakucode/events{/privacy}", + "received_events_url": "https://api.github.com/users/otakucode/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/xonsh/xonsh/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/xonsh/xonsh/labels/feature", + "name": "feature", + "color": "009800" + }, + { + "url": "https://api.github.com/repos/xonsh/xonsh/labels/help%20wanted", + "name": "help wanted", + "color": "159818" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/xonsh/xonsh/milestones/4", + "html_url": "https://github.com/xonsh/xonsh/milestones/v0.4.0", + "labels_url": "https://api.github.com/repos/xonsh/xonsh/milestones/4/labels", + "id": 1779851, + "number": 4, + "title": "v0.4.0", + "description": "", + "creator": { + "login": "scopatz", + "id": 320553, + "avatar_url": "https://avatars.githubusercontent.com/u/320553?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/scopatz", + "html_url": "https://github.com/scopatz", + "followers_url": "https://api.github.com/users/scopatz/followers", + "following_url": "https://api.github.com/users/scopatz/following{/other_user}", + "gists_url": "https://api.github.com/users/scopatz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/scopatz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/scopatz/subscriptions", + "organizations_url": "https://api.github.com/users/scopatz/orgs", + "repos_url": "https://api.github.com/users/scopatz/repos", + "events_url": "https://api.github.com/users/scopatz/events{/privacy}", + "received_events_url": "https://api.github.com/users/scopatz/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 181, + "closed_issues": 167, + "state": "open", + "created_at": "2016-05-20T22:54:44Z", + "updated_at": "2016-06-21T20:30:50Z", + "due_on": "2016-06-30T04:00:00Z", + "closed_at": null + }, + "comments": 11, + "created_at": "2015-06-12T17:52:02Z", + "updated_at": "2016-06-05T18:57:24Z", + "closed_at": null, + "body": "Hello all, I just found out about xonsh yesterday and have been checking it out. After installing it (cloned from github, then used pip install . in the cloned directory) my first discovery was that it wasn't put anywhere on my path. Then I found the 'xonsh' script in the scripts directory. Upon executing it, I get:\r\n\r\n/usr/bin/env: python -u: No such file or directory\r\n\r\nThe problem is the shebang at the top of the script. It called /usr/bin/env python -u. Aside from the fact that 'python' on my system will get you Python 2.7 and Python 3 is called python3 (a common configuration when legacy and current Python are both installed), the real issue is that using parameters like that in a shebang doesn't work on many systems. After doing some reading, it appears that this would work OK on OSX but fail on most (if not all) Linux systems. The system processes \"python -u\" as a single string and looks for an executable with that whole name.\r\n\r\nI'm not sure how you'd like this fixed. Personally I set the PYTHONUNBUFFERED environment variable to 1 before launching the script after changing the shebang to be #!/usr/bin/env python3. I don't think that's a good general answer, though. It would fail on systems which have python3 as just 'python' and not guarantee unbuffered access. Perhaps the disabling of buffering should be handled in code?", + "score": 0.7922998 + }, + { + "url": "https://api.github.com/repos/blockstack/blockstack-server/issues/93", + "repository_url": "https://api.github.com/repos/blockstack/blockstack-server", + "labels_url": "https://api.github.com/repos/blockstack/blockstack-server/issues/93/labels{/name}", + "comments_url": "https://api.github.com/repos/blockstack/blockstack-server/issues/93/comments", + "events_url": "https://api.github.com/repos/blockstack/blockstack-server/issues/93/events", + "html_url": "https://github.com/blockstack/blockstack-server/issues/93", + "id": 89311559, + "number": 93, + "title": "Issues running on Windows", + "user": { + "login": "csuwildcat", + "id": 131786, + "avatar_url": "https://avatars.githubusercontent.com/u/131786?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/csuwildcat", + "html_url": "https://github.com/csuwildcat", + "followers_url": "https://api.github.com/users/csuwildcat/followers", + "following_url": "https://api.github.com/users/csuwildcat/following{/other_user}", + "gists_url": "https://api.github.com/users/csuwildcat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/csuwildcat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/csuwildcat/subscriptions", + "organizations_url": "https://api.github.com/users/csuwildcat/orgs", + "repos_url": "https://api.github.com/users/csuwildcat/repos", + "events_url": "https://api.github.com/users/csuwildcat/events{/privacy}", + "received_events_url": "https://api.github.com/users/csuwildcat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/blockstack/blockstack-server/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 16, + "created_at": "2015-06-18T14:41:25Z", + "updated_at": "2015-10-05T22:51:42Z", + "closed_at": null, + "body": "Steps to reproduce:\r\n\r\n- Installed Python\r\n- Installed blockstored with pip\r\n- Attempt to exec `blockstored start`\r\n\r\nError output:\r\n\r\n```\r\n[DEBUG] [blockstored:76] Connect to bitcoind at https://openname@btcd.onename.co\r\nm:8332\r\nTraceback (most recent call last):\r\n File \"blockstore/blockstored.py\", line 701, in \r\n run_blockstored()\r\n File \"blockstore/blockstored.py\", line 688, in run_blockstored\r\n stop_server()\r\n File \"blockstore/blockstored.py\", line 552, in stop_server\r\n from .lib.config import BLOCKSTORED_PID_FILE\r\nValueError: Attempted relative import in non-package\r\n```", + "score": 4.3382697 + }, + { + "url": "https://api.github.com/repos/python-pillow/Pillow/issues/1293", + "repository_url": "https://api.github.com/repos/python-pillow/Pillow", + "labels_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1293/labels{/name}", + "comments_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1293/comments", + "events_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1293/events", + "html_url": "https://github.com/python-pillow/Pillow/issues/1293", + "id": 89785059, + "number": 1293, + "title": "Problem with saving image from clipboard", + "user": { + "login": "sallyruthstruik", + "id": 1565642, + "avatar_url": "https://avatars.githubusercontent.com/u/1565642?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sallyruthstruik", + "html_url": "https://github.com/sallyruthstruik", + "followers_url": "https://api.github.com/users/sallyruthstruik/followers", + "following_url": "https://api.github.com/users/sallyruthstruik/following{/other_user}", + "gists_url": "https://api.github.com/users/sallyruthstruik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sallyruthstruik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sallyruthstruik/subscriptions", + "organizations_url": "https://api.github.com/users/sallyruthstruik/orgs", + "repos_url": "https://api.github.com/users/sallyruthstruik/repos", + "events_url": "https://api.github.com/users/sallyruthstruik/events{/privacy}", + "received_events_url": "https://api.github.com/users/sallyruthstruik/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/python-pillow/Pillow/labels/Bug", + "name": "Bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/python-pillow/Pillow/labels/Windows", + "name": "Windows", + "color": "00bcf2" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 52, + "created_at": "2015-06-20T15:47:43Z", + "updated_at": "2016-04-19T19:38:42Z", + "closed_at": null, + "body": "Hello,\r\n\r\nI have Windows 8 x64 system and installed Pillow version 2.8.2\r\nI'm trying to grab image from clipboard. I press \"Alt+PrtSc\" and then call grabclipboard function, and get such error:\r\n```{python}\r\nImageGrab.grabclipboard()\r\n---------------------------------------------------------------------------\r\nIOError Traceback (most recent call last)\r\n in ()\r\n 1 from PIL import ImageGrab\r\n 2 \r\n----> 3 ImageGrab.grabclipboard()\r\n\r\nC:\\Anaconda\\lib\\site-packages\\PIL\\ImageGrab.pyc in grabclipboard()\r\n 49 from PIL import BmpImagePlugin\r\n 50 import io\r\n---> 51 return BmpImagePlugin.DibImageFile(io.BytesIO(data))\r\n 52 return data\r\n\r\nC:\\Anaconda\\lib\\site-packages\\PIL\\ImageFile.pyc in __init__(self, fp, filename)\r\n 95 \r\n 96 try:\r\n---> 97 self._open()\r\n 98 except IndexError as v: # end of data\r\n 99 if Image.DEBUG > 1:\r\n\r\nC:\\Anaconda\\lib\\site-packages\\PIL\\BmpImagePlugin.pyc in _open(self)\r\n 204 \r\n 205 def _open(self):\r\n--> 206 self._bitmap()\r\n 207 \r\n 208 #\r\n\r\nC:\\Anaconda\\lib\\site-packages\\PIL\\BmpImagePlugin.pyc in _bitmap(self, header, offset)\r\n 145 raw_mode = MASK_MODES[(file_info['bits'], file_info['rgb_mask'])]\r\n 146 else:\r\n--> 147 raise IOError(\"Unsupported BMP bitfields layout\")\r\n 148 else:\r\n 149 raise IOError(\"Unsupported BMP bitfields layout\")\r\n\r\nIOError: Unsupported BMP bitfields layout\r\n```\r\n\r\nBut if I call ImageGrab.grab function, screenshot(of whole screen) is saved properly. ", + "score": 0.47580385 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/24968", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/24968/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/24968/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/24968/events", + "html_url": "https://github.com/saltstack/salt/issues/24968", + "id": 91021245, + "number": 24968, + "title": "salt-cloud 2015.5.2 cannot provision CentOS 6.6 minion on Azure", + "user": { + "login": "bradthurber", + "id": 3045456, + "avatar_url": "https://avatars.githubusercontent.com/u/3045456?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bradthurber", + "html_url": "https://github.com/bradthurber", + "followers_url": "https://api.github.com/users/bradthurber/followers", + "following_url": "https://api.github.com/users/bradthurber/following{/other_user}", + "gists_url": "https://api.github.com/users/bradthurber/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bradthurber/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bradthurber/subscriptions", + "organizations_url": "https://api.github.com/users/bradthurber/orgs", + "repos_url": "https://api.github.com/users/bradthurber/repos", + "events_url": "https://api.github.com/users/bradthurber/events{/privacy}", + "received_events_url": "https://api.github.com/users/bradthurber/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Confirmed", + "name": "Confirmed", + "color": "c7def8" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P3", + "name": "P3", + "color": "0a3d77" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/RIoT", + "name": "RIoT", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Salt-Cloud", + "name": "Salt-Cloud", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/13", + "html_url": "https://github.com/saltstack/salt/milestones/Approved", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/13/labels", + "id": 9265, + "number": 13, + "title": "Approved", + "description": "All issues that are ready to be worked on, both bugs and features.", + "creator": { + "login": "thatch45", + "id": 507599, + "avatar_url": "https://avatars.githubusercontent.com/u/507599?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thatch45", + "html_url": "https://github.com/thatch45", + "followers_url": "https://api.github.com/users/thatch45/followers", + "following_url": "https://api.github.com/users/thatch45/following{/other_user}", + "gists_url": "https://api.github.com/users/thatch45/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thatch45/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thatch45/subscriptions", + "organizations_url": "https://api.github.com/users/thatch45/orgs", + "repos_url": "https://api.github.com/users/thatch45/repos", + "events_url": "https://api.github.com/users/thatch45/events{/privacy}", + "received_events_url": "https://api.github.com/users/thatch45/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 3040, + "closed_issues": 3781, + "state": "open", + "created_at": "2011-05-14T04:00:56Z", + "updated_at": "2016-06-21T19:49:47Z", + "due_on": null, + "closed_at": null + }, + "comments": 2, + "created_at": "2015-06-25T17:07:21Z", + "updated_at": "2015-06-25T20:10:13Z", + "closed_at": null, + "body": "[Edited: Showing more representative logging. Changed to D2 machine type]\r\n\r\nUpon running salt-cloud, the CentOS 6.6 vm is created successfully, but bootstrap of minion fails at creation of /tmp directory with ```Error: there was a profile error```: \r\n\r\n```\r\n[DEBUG ] Deploying saltcentos66-d2-1.cloudapp.net at 1435257905.0\r\n[DEBUG ] Attempting connection to host saltcentos66-d2-1.cloudapp.net on port 22\r\n[DEBUG ] Caught exception in wait_for_port: timed out\r\n[DEBUG ] Retrying connection to host saltcentos66-d2-1.cloudapp.net on port 22 (try 1)\r\n[DEBUG ] Caught exception in wait_for_port: timed out\r\n[DEBUG ] Retrying connection to host saltcentos66-d2-1.cloudapp.net on port 22 (try 2)\r\n[DEBUG ] SSH port 22 on saltcentos66-d2-1.cloudapp.net is available\r\n[DEBUG ] Using password authentication\r\n[DEBUG ] Attempting to authenticate as azureuser (try 1 of 15)\r\n[DEBUG ] SSH command: 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net date'\r\n[DEBUG ] Child Forked! PID: 26776 STDOUT_FD: 4 STDERR_FD: 7\r\n[DEBUG ] Terminal Command: /bin/sh -c ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net date\r\nWarning: Permanently added 'saltcentos66-d2-1.cloudapp.net,191.237.83.222' (RSA) to the list of known hosts.\r\n[DEBUG ] Warning: Permanently added 'saltcentos66-d2-1.cloudapp.net,191.237.83.222' (RSA) to the list of known hosts.\r\nazureuser@saltcentos66-d2-1.cloudapp.net's password: [DEBUG ] azureuser@saltcentos66-d2-1.cloudapp.net's password:\r\n\r\nThu Jun 25 18:46:30 UTC 2015\r\n[DEBUG ] Thu Jun 25 18:46:30 UTC 2015\r\n[DEBUG ] Logging into saltcentos66-d2-1.cloudapp.net:22 as azureuser\r\n[DEBUG ] Using Sanitized-123 as the password\r\n[DEBUG ] Using sudo to run command sudo test -e '/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb'\r\n[DEBUG ] SSH command: 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net \\'sudo test -e \\'\"\\'\"\\'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb\\'\"\\'\"\\'\\''\r\n[DEBUG ] Child Forked! PID: 26899 STDOUT_FD: 4 STDERR_FD: 7\r\n[DEBUG ] Terminal Command: /bin/sh -c ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net 'sudo test -e '\"'\"'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb'\"'\"''\r\nssh: connect to host saltcentos66-d2-1.cloudapp.net port 22: Connection refused\r\n[DEBUG ] ssh: connect to host saltcentos66-d2-1.cloudapp.net port 22: Connection refused\r\n[DEBUG ] Using sudo to run command sudo sh -c \"( mkdir -p '/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb' && chmod 700 '/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb' )\"\r\n[DEBUG ] SSH command: 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net \\'sudo sh -c \"( mkdir -p \\'\"\\'\"\\'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb\\'\"\\'\"\\' && chmod 700 \\'\"\\'\"\\'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb\\'\"\\'\"\\' )\"\\''\r\n[DEBUG ] Child Forked! PID: 26926 STDOUT_FD: 4 STDERR_FD: 7\r\n[DEBUG ] Terminal Command: /bin/sh -c ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net 'sudo sh -c \"( mkdir -p '\"'\"'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb'\"'\"' && chmod 700 '\"'\"'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb'\"'\"' )\"'\r\nWarning: Permanently added 'saltcentos66-d2-1.cloudapp.net,191.237.83.222' (RSA) to the list of known hosts.\r\n[DEBUG ] Warning: Permanently added 'saltcentos66-d2-1.cloudapp.net,191.237.83.222' (RSA) to the list of known hosts.\r\nazureuser@saltcentos66-d2-1.cloudapp.net's password: [DEBUG ] azureuser@saltcentos66-d2-1.cloudapp.net's password:\r\nsudo: sorry, you must have a tty to run sudo\r\n[DEBUG ] sudo: sorry, you must have a tty to run sudo\r\n\r\nError: There was a profile error: Command 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oControlPath=none -p 22 azureuser@saltcentos66-d2-1.cloudapp.net \\'sudo sh -c \"( mkdir -p \\'\"\\'\"\\'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb\\'\"\\'\"\\' && chmod 700 \\'\"\\'\"\\'/tmp/.saltcloud-42dd1dde-f915-4953-9c69-b9e56946d0bb\\'\"\\'\"\\' )\"\\'' failed. Exit code: 1\r\n```\r\n\r\nsalt-cloud command used:\r\n```\r\nsalt-cloud -p azure-centos66-d2 saltcentos66-d2-1 -l debug\r\n```\r\n\r\nversions\r\n```\r\n# salt-cloud --versions\r\n Salt: 2015.5.2\r\n Python: 2.7.5 (default, Jun 24 2015, 00:41:19)\r\n Jinja2: 2.7.3\r\n M2Crypto: 0.21.1\r\n msgpack-python: 0.4.6\r\n msgpack-pure: Not Installed\r\n pycrypto: 2.6.1\r\n libnacl: Not Installed\r\n PyYAML: 3.11\r\n ioflo: Not Installed\r\n PyZMQ: 14.3.1\r\n RAET: Not Installed\r\n ZMQ: 3.2.5\r\n Mako: Not Installed\r\n Apache Libcloud: 0.17.0\r\n\r\n# pip list | grep azu\r\nazure (0.11.1)\r\n```\r\n\r\nprovider file:\r\n```\r\nprov-azure-bet:\r\n provider: azure\r\n subscription_id: abacab00-1234-5678-bcaf-12344568ff6c\r\n certificate_path: /etc/salt/cloud.providers.d/azure-bet.pem\r\n\r\n # Set up the location of the salt master\r\n #\r\n minion:\r\n master: salt.awsdev.openlane.com\r\n```\r\n\r\nprofile file:\r\n```\r\nazure-centos66:\r\n provider: prov-azure-bet\r\n image: '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-66-20150605'\r\n size: Basic_A2\r\n location: 'East US'\r\n script_args: git v2015.5.2\r\n ssh_username: azureuser\r\n ssh_password: Sanitized-123\r\n slot: staging\r\n media_link: 'https://portalvhdabcdefgh.blob.core.windows.net/vhds'\r\n\r\nazure-centos71:\r\n provider: prov-azure-bet\r\n image: '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-71-20150410'\r\n size: Basic_A2\r\n location: 'East US'\r\n script_args: git v2015.5.2\r\n ssh_username: azureuser\r\n ssh_password: Sanitized-123\r\n slot: staging\r\n media_link: 'https://portalvhdabcdefgh.blob.core.windows.net/vhds'\r\n\r\nazure-centos66-d2:\r\n provider: prov-azure-bet\r\n image: '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-66-20150605'\r\n size: Standard_D2\r\n location: 'East US'\r\n script_args: git v2015.5.2\r\n ssh_username: azureuser\r\n ssh_password: Sanitized-123\r\n slot: staging\r\n media_link: 'https://portalvhdabcdefgh.blob.core.windows.net/vhds'\r\n```\r\n", + "score": 0.36345905 + }, + { + "url": "https://api.github.com/repos/uqfoundation/dill/issues/112", + "repository_url": "https://api.github.com/repos/uqfoundation/dill", + "labels_url": "https://api.github.com/repos/uqfoundation/dill/issues/112/labels{/name}", + "comments_url": "https://api.github.com/repos/uqfoundation/dill/issues/112/comments", + "events_url": "https://api.github.com/repos/uqfoundation/dill/issues/112/events", + "html_url": "https://github.com/uqfoundation/dill/issues/112", + "id": 91151250, + "number": 112, + "title": "get_objgraph script missing import on windows", + "user": { + "login": "mmckerns", + "id": 321534, + "avatar_url": "https://avatars.githubusercontent.com/u/321534?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mmckerns", + "html_url": "https://github.com/mmckerns", + "followers_url": "https://api.github.com/users/mmckerns/followers", + "following_url": "https://api.github.com/users/mmckerns/following{/other_user}", + "gists_url": "https://api.github.com/users/mmckerns/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mmckerns/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mmckerns/subscriptions", + "organizations_url": "https://api.github.com/users/mmckerns/orgs", + "repos_url": "https://api.github.com/users/mmckerns/repos", + "events_url": "https://api.github.com/users/mmckerns/events{/privacy}", + "received_events_url": "https://api.github.com/users/mmckerns/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/uqfoundation/dill/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2015-06-26T04:41:25Z", + "updated_at": "2015-06-26T05:00:42Z", + "closed_at": null, + "body": "Apparently, `_curses` is not easily available for windows, and needs to be installed by hand.\r\nThere seems to be a `pip install`-able build here:\r\nhttp://www.lfd.uci.edu/~gohlke/pythonlibs/xugyqnq9/curses-2.2-cp27-none-win32.whl", + "score": 3.8476286 + }, + { + "url": "https://api.github.com/repos/simphony/simphony-jyulb/issues/26", + "repository_url": "https://api.github.com/repos/simphony/simphony-jyulb", + "labels_url": "https://api.github.com/repos/simphony/simphony-jyulb/issues/26/labels{/name}", + "comments_url": "https://api.github.com/repos/simphony/simphony-jyulb/issues/26/comments", + "events_url": "https://api.github.com/repos/simphony/simphony-jyulb/issues/26/events", + "html_url": "https://github.com/simphony/simphony-jyulb/issues/26", + "id": 92013411, + "number": 26, + "title": "install of simphony-jyu-lb fails on Ubuntu 12.04.5 LTS - 32bit", + "user": { + "login": "nathanfranklin", + "id": 8287580, + "avatar_url": "https://avatars.githubusercontent.com/u/8287580?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nathanfranklin", + "html_url": "https://github.com/nathanfranklin", + "followers_url": "https://api.github.com/users/nathanfranklin/followers", + "following_url": "https://api.github.com/users/nathanfranklin/following{/other_user}", + "gists_url": "https://api.github.com/users/nathanfranklin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nathanfranklin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nathanfranklin/subscriptions", + "organizations_url": "https://api.github.com/users/nathanfranklin/orgs", + "repos_url": "https://api.github.com/users/nathanfranklin/repos", + "events_url": "https://api.github.com/users/nathanfranklin/events{/privacy}", + "received_events_url": "https://api.github.com/users/nathanfranklin/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/simphony/simphony-jyulb/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2015-06-30T07:29:11Z", + "updated_at": "2015-11-09T10:02:06Z", + "closed_at": null, + "body": "```\r\n(simphony)franklin@ubuntu:~/simphony-framework$ uname -a\r\nLinux ubuntu 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:50:54 UTC 2014 i686 i686 i386 GNU/Linux\r\n```\r\n\r\nCommand and error message:\r\n```\r\n(simphony)franklin@ubuntu:~/simphony-framework$ make simphony-jyu-lb\r\npip install --upgrade git+https://github.com/simphony/simphony-jyulb.git@0.1.3\r\nCollecting git+https://github.com/simphony/simphony-jyulb.git@0.1.3\r\n Cloning https://github.com/simphony/simphony-jyulb.git (to 0.1.3) to /tmp/pip-_VTrNG-build\r\n/home/franklin/simphony/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n InsecurePlatformWarning\r\nRequirement already up-to-date: simphony in /home/franklin/simphony/lib/python2.7/site-packages (from jyu-engine==0.1.3)\r\nRequirement already up-to-date: enum34>=1.0.4 in /home/franklin/simphony/lib/python2.7/site-packages (from simphony->jyu-engine==0.1.3)\r\nRequirement already up-to-date: stevedore>=1.2.0 in /home/franklin/simphony/lib/python2.7/site-packages (from simphony->jyu-engine==0.1.3)\r\nRequirement already up-to-date: numpy>=1.4.1 in /home/franklin/simphony/lib/python2.7/site-packages (from simphony->jyu-engine==0.1.3)\r\nCollecting argparse (from stevedore>=1.2.0->simphony->jyu-engine==0.1.3)\r\n Using cached argparse-1.3.0-py2.py3-none-any.whl\r\nRequirement already up-to-date: six>=1.9.0 in /home/franklin/simphony/lib/python2.7/site-packages (from stevedore>=1.2.0->simphony->jyu-engine==0.1.3)\r\nRequirement already up-to-date: pbr<2.0,>=0.11 in /home/franklin/simphony/lib/python2.7/site-packages (from stevedore>=1.2.0->simphony->jyu-engine==0.1.3)\r\nInstalling collected packages: jyu-engine, argparse\r\n Running setup.py install for jyu-engine\r\n Complete output from command /home/franklin/simphony/bin/python -c \"import setuptools, tokenize;__file__='/tmp/pip-_VTrNG-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record /tmp/pip-5dn3qX-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/franklin/simphony/include/site/python2.7/jyu-engine:\r\n running install\r\n running build\r\n running build_py\r\n creating build\r\n creating build/lib.linux-i686-2.7\r\n creating build/lib.linux-i686-2.7/jyulb\r\n copying jyulb/__init__.py -> build/lib.linux-i686-2.7/jyulb\r\n copying jyulb/cuba_extension.py -> build/lib.linux-i686-2.7/jyulb\r\n creating build/lib.linux-i686-2.7/jyulb/internal\r\n copying jyulb/internal/__init__.py -> build/lib.linux-i686-2.7/jyulb/internal\r\n creating build/lib.linux-i686-2.7/jyulb/fileio\r\n copying jyulb/fileio/__init__.py -> build/lib.linux-i686-2.7/jyulb/fileio\r\n creating build/lib.linux-i686-2.7/jyulb/internal/isothermal\r\n copying jyulb/internal/isothermal/__init__.py -> build/lib.linux-i686-2.7/jyulb/internal/isothermal\r\n copying jyulb/internal/isothermal/jyu_engine.py -> build/lib.linux-i686-2.7/jyulb/internal/isothermal\r\n creating build/lib.linux-i686-2.7/jyulb/internal/common\r\n copying jyulb/internal/common/__init__.py -> build/lib.linux-i686-2.7/jyulb/internal/common\r\n copying jyulb/internal/common/proxy_lattice.py -> build/lib.linux-i686-2.7/jyulb/internal/common\r\n creating build/lib.linux-i686-2.7/jyulb/internal/isothermal/tests\r\n copying jyulb/internal/isothermal/tests/__init__.py -> build/lib.linux-i686-2.7/jyulb/internal/isothermal/tests\r\n copying jyulb/internal/isothermal/tests/test_plugin_integration.py -> build/lib.linux-i686-2.7/jyulb/internal/isothermal/tests\r\n copying jyulb/internal/isothermal/tests/test_jyu_engine.py -> build/lib.linux-i686-2.7/jyulb/internal/isothermal/tests\r\n creating build/lib.linux-i686-2.7/jyulb/internal/common/tests\r\n copying jyulb/internal/common/tests/__init__.py -> build/lib.linux-i686-2.7/jyulb/internal/common/tests\r\n copying jyulb/internal/common/tests/test_proxy_lattice.py -> build/lib.linux-i686-2.7/jyulb/internal/common/tests\r\n creating build/lib.linux-i686-2.7/jyulb/fileio/isothermal\r\n copying jyulb/fileio/isothermal/__init__.py -> build/lib.linux-i686-2.7/jyulb/fileio/isothermal\r\n copying jyulb/fileio/isothermal/jyu_engine.py -> build/lib.linux-i686-2.7/jyulb/fileio/isothermal\r\n creating build/lib.linux-i686-2.7/jyulb/fileio/common\r\n copying jyulb/fileio/common/__init__.py -> build/lib.linux-i686-2.7/jyulb/fileio/common\r\n copying jyulb/fileio/common/jyu_lattice_proxy.py -> build/lib.linux-i686-2.7/jyulb/fileio/common\r\n creating build/lib.linux-i686-2.7/jyulb/fileio/isothermal/tests\r\n copying jyulb/fileio/isothermal/tests/__init__.py -> build/lib.linux-i686-2.7/jyulb/fileio/isothermal/tests\r\n copying jyulb/fileio/isothermal/tests/test_plugin_integration.py -> build/lib.linux-i686-2.7/jyulb/fileio/isothermal/tests\r\n copying jyulb/fileio/isothermal/tests/test_jyu_engine.py -> build/lib.linux-i686-2.7/jyulb/fileio/isothermal/tests\r\n creating build/lib.linux-i686-2.7/jyulb/fileio/common/tests\r\n copying jyulb/fileio/common/tests/__init__.py -> build/lib.linux-i686-2.7/jyulb/fileio/common/tests\r\n copying jyulb/fileio/common/tests/test_jyu_lattice_proxy.py -> build/lib.linux-i686-2.7/jyulb/fileio/common/tests\r\n running build_ext\r\n building 'jyulb.internal.isothermal.solver' extension\r\n creating build/temp.linux-i686-2.7\r\n creating build/temp.linux-i686-2.7/jyulb\r\n creating build/temp.linux-i686-2.7/jyulb/internal\r\n creating build/temp.linux-i686-2.7/jyulb/internal/isothermal\r\n creating build/temp.linux-i686-2.7/JYU-LB\r\n creating build/temp.linux-i686-2.7/JYU-LB/include\r\n creating build/temp.linux-i686-2.7/JYU-LB/include/common\r\n creating build/temp.linux-i686-2.7/JYU-LB/include/collision\r\n creating build/temp.linux-i686-2.7/JYU-LB/include/kernel\r\n creating build/temp.linux-i686-2.7/JYU-LB/include/solver\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -IJYU-LB/include/dvs/ -IJYU-LB/include/collision/ -IJYU-LB/include/kernel/ -IJYU-LB/include/solver/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c jyulb/internal/isothermal/solver.cpp -o build/temp.linux-i686-2.7/jyulb/internal/isothermal/solver.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n In file included from /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1804:0,\r\n from /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:17,\r\n from /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\r\n from jyulb/internal/isothermal/solver.cpp:281:\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning \"Using deprecated NumPy API, disable it by \" \"#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\r\n In file included from JYU-LB/include/common/node.h:10:0,\r\n from jyulb/internal/isothermal/solver.cpp:284:\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1629:1: warning: ‘int _import_array()’ defined but not used [-Wunused-function]\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/__ufunc_api.h:241:1: warning: ‘int _import_umath()’ defined but not used [-Wunused-function]\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -IJYU-LB/include/dvs/ -IJYU-LB/include/collision/ -IJYU-LB/include/kernel/ -IJYU-LB/include/solver/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c JYU-LB/include/common/node.cpp -o build/temp.linux-i686-2.7/JYU-LB/include/common/node.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -IJYU-LB/include/dvs/ -IJYU-LB/include/collision/ -IJYU-LB/include/kernel/ -IJYU-LB/include/solver/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c JYU-LB/include/common/filter.cpp -o build/temp.linux-i686-2.7/JYU-LB/include/common/filter.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -IJYU-LB/include/dvs/ -IJYU-LB/include/collision/ -IJYU-LB/include/kernel/ -IJYU-LB/include/solver/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c JYU-LB/include/collision/collision.cpp -o build/temp.linux-i686-2.7/JYU-LB/include/collision/collision.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -IJYU-LB/include/dvs/ -IJYU-LB/include/collision/ -IJYU-LB/include/kernel/ -IJYU-LB/include/solver/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c JYU-LB/include/kernel/kernel.cpp -o build/temp.linux-i686-2.7/JYU-LB/include/kernel/kernel.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n JYU-LB/include/kernel/kernel.cpp:48:1: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -IJYU-LB/include/dvs/ -IJYU-LB/include/collision/ -IJYU-LB/include/kernel/ -IJYU-LB/include/solver/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c JYU-LB/include/solver/solver.cpp -o build/temp.linux-i686-2.7/JYU-LB/include/solver/solver.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-i686-2.7/jyulb/internal/isothermal/solver.o build/temp.linux-i686-2.7/JYU-LB/include/common/node.o build/temp.linux-i686-2.7/JYU-LB/include/common/filter.o build/temp.linux-i686-2.7/JYU-LB/include/collision/collision.o build/temp.linux-i686-2.7/JYU-LB/include/kernel/kernel.o build/temp.linux-i686-2.7/JYU-LB/include/solver/solver.o -o build/lib.linux-i686-2.7/jyulb/internal/isothermal/solver.so -fopenmp -O3\r\n building 'jyulb.internal.common.domain' extension\r\n creating build/temp.linux-i686-2.7/jyulb/internal/common\r\n gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IJYU-LB/include/common/ -I/home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c jyulb/internal/common/domain.cpp -o build/temp.linux-i686-2.7/jyulb/internal/common/domain.o -fopenmp -O3\r\n cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]\r\n In file included from /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1804:0,\r\n from /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:17,\r\n from /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,\r\n from jyulb/internal/common/domain.cpp:275:\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning \"Using deprecated NumPy API, disable it by \" \"#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\r\n jyulb/internal/common/domain.cpp: In function ‘PyObject* __pyx_pf_5jyulb_8internal_6common_6domain_9PyNodeSet_get_n(__pyx_obj_5jyulb_8internal_6common_6domain_PyNodeSet*, PyArrayObject*)’:\r\n jyulb/internal/common/domain.cpp:1588:197: error: invalid conversion from ‘__pyx_t_5numpy_uint32_t* {aka long unsigned int*}’ to ‘const UINT* {aka const unsigned int*}’ [-fpermissive]\r\n JYU-LB/include/common/node.h:20:18: error: initializing argument 1 of ‘virtual UINT NodeSet::get_n(const UINT*) const’ [-fpermissive]\r\n jyulb/internal/common/domain.cpp: In function ‘PyObject* __pyx_pf_5jyulb_8internal_6common_6domain_9PyNodeSet_2get_ijk(__pyx_obj_5jyulb_8internal_6common_6domain_PyNodeSet*, unsigned int, PyArrayObject*)’:\r\n jyulb/internal/common/domain.cpp:1826:198: error: invalid conversion from ‘__pyx_t_5numpy_uint32_t* {aka long unsigned int*}’ to ‘UINT* {aka unsigned int*}’ [-fpermissive]\r\n JYU-LB/include/common/node.h:21:18: error: initializing argument 2 of ‘virtual void NodeSet::get_ijk(UINT, UINT*) const’ [-fpermissive]\r\n jyulb/internal/common/domain.cpp: In function ‘int __pyx_pf_5jyulb_8internal_6common_6domain_9PyLattice___cinit__(__pyx_obj_5jyulb_8internal_6common_6domain_PyLattice*, PyArrayObject*, PyArrayObject*)’:\r\n jyulb/internal/common/domain.cpp:2184:325: error: invalid conversion from ‘__pyx_t_5numpy_uint32_t* {aka long unsigned int*}’ to ‘const UINT* {aka const unsigned int*}’ [-fpermissive]\r\n JYU-LB/include/common/node.h:36:14: error: initializing argument 1 of ‘Lattice::Lattice(const UINT*, const double*)’ [-fpermissive]\r\n jyulb/internal/common/domain.cpp: In function ‘PyObject* __pyx_pf_5jyulb_8internal_6common_6domain_24PyAbstractIsothermalData_24get_n(__pyx_obj_5jyulb_8internal_6common_6domain_PyAbstractIsothermalData*, PyArrayObject*)’:\r\n jyulb/internal/common/domain.cpp:5741:212: error: invalid conversion from ‘__pyx_t_5numpy_uint32_t* {aka long unsigned int*}’ to ‘const UINT* {aka const unsigned int*}’ [-fpermissive]\r\n JYU-LB/include/common/node.h:20:18: error: initializing argument 1 of ‘virtual UINT NodeSet::get_n(const UINT*) const’ [-fpermissive]\r\n jyulb/internal/common/domain.cpp: In function ‘PyObject* __pyx_pf_5jyulb_8internal_6common_6domain_24PyAbstractIsothermalData_26get_ijk(__pyx_obj_5jyulb_8internal_6common_6domain_PyAbstractIsothermalData*, unsigned int, PyArrayObject*)’:\r\n jyulb/internal/common/domain.cpp:5891:213: error: invalid conversion from ‘__pyx_t_5numpy_uint32_t* {aka long unsigned int*}’ to ‘UINT* {aka unsigned int*}’ [-fpermissive]\r\n JYU-LB/include/common/node.h:21:18: error: initializing argument 2 of ‘virtual void NodeSet::get_ijk(UINT, UINT*) const’ [-fpermissive]\r\n In file included from JYU-LB/include/common/node.h:10:0,\r\n from jyulb/internal/common/domain.cpp:278:\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h: At global scope:\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1629:1: warning: ‘int _import_array()’ defined but not used [-Wunused-function]\r\n /home/franklin/simphony/local/lib/python2.7/site-packages/numpy/core/include/numpy/__ufunc_api.h:241:1: warning: ‘int _import_umath()’ defined but not used [-Wunused-function]\r\n error: command 'gcc' failed with exit status 1\r\n \r\n ----------------------------------------\r\nCommand \"/home/franklin/simphony/bin/python -c \"import setuptools, tokenize;__file__='/tmp/pip-_VTrNG-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record /tmp/pip-5dn3qX-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/franklin/simphony/include/site/python2.7/jyu-engine\" failed with error code 1 in /tmp/pip-_VTrNG-build\r\nmake: *** [simphony-jyu-lb] Error 1\r\n```", + "score": 0.7653773 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/403", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/403/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/403/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/403/events", + "html_url": "https://github.com/pypa/setuptools/issues/403", + "id": 144281214, + "number": 403, + "title": "Unable to uninstall package in develop mode", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 7, + "created_at": "2015-06-30T11:14:48Z", + "updated_at": "2016-03-29T14:27:48Z", + "closed_at": null, + "body": "Originally reported by: **lansman (Bitbucket: [lansman](http://bitbucket.org/lansman), GitHub: [lansman](http://github.com/lansman))**\n\n----------------------------------------\n\n* Windows 7 x64\n* setuptools 18.0.1\n* pip 7.0.3\n* mercurial 3.4.1 x64\n* Python 2.7.10 x32 (i access it via `python2.exe` also have python3 installed on my computer, can access it via `python.exe`). \n*But below i work only with python2.exe*\n\nI have a project MY_SCRIPT with mercurial repo in it.\n\nCreated simple setup.py inside it\n```\nfrom setuptools import setup\n\nsetup(\n name='MY_SCRIPT',\n packages=[...], \n use_scm_version=True,\n setup_requires=['setuptools_scm'],\n)\n```\n\ninstall it\n`python.exe setup.py develop`\n\nbut when issuing `pip list` got an error near my script\n\n```\n'Error when trying to get requirement for VCS system Command \"hg showconfig paths.default\" failed with error code 1\n```\n\nOK, went to /.hg/hgrc and added to paths section new const\n```\n[paths]\ndefault=\n```\n\nnow `pip list` works fine and i can see my package in it:\n`MY_SCRIPT (0.1.dev90+n80eec607bac7.d20150630, )`\n\nwhen i add new commits in folder, version in `pip list` output also bumps, so a link exists. Also i can see folders `MY_SCRIPT` and `MY_SCRIPT-0.0.0.dist-info` and `MY_SCRIPT-0.1.dev90+n80eec607bac7.d20150630.dist-info` in site-packages folder.\n**\nBut i cannot disable editable mode (delete my package from pip).**\n\n`pip uninstall MY_SCRIPT` outputs:\n`Can't uninstall 'MY_SCRIPT'. No files were found to uninstall.`\n\n```cd \npython2.exe setup.py develop --uninstall```\n\noutputs:\n```\npython2.exe setup.py develop --uninstall\noptions (after parsing config files):\noptions (after parsing command line):\noption dict for 'aliases' command:\n {}\noption dict for 'develop' command:\n {'uninstall': ('command line', 1)}\nrunning develop\nDistribution.get_command_obj(): creating 'develop' command object\n setting options for 'develop' command:\n setting options for 'develop' command:\n uninstall = 1 (from command line)\nDistribution.get_command_obj(): creating 'egg_info' command object\nDistribution.get_command_obj(): creating 'install' command object\npre-finalize_{unix,other}:\n prefix: None\n exec_prefix: None\n home: None\n user: 0\n install_base: None\n install_platbase: None\n root: None\n install_purelib: None\n install_platlib: None\n install_lib: None\n install_headers: None\n install_scripts: None\n install_data: None\n compile: None\n compile: True\n optimize: None\n force: None\n skip_build: 0\n record: None\n old_and_unmanageable: None\n single_version_externally_managed: None\npost-finalize_{unix,other}():\n prefix: C:\\Python27\\ArcGIS10.2\n exec_prefix: None\n home: None\n user: 0\n install_base: C:\\Python27\\ArcGIS10.2\n install_platbase: C:\\Python27\\ArcGIS10.2\n root: None\n install_purelib: $base/Lib/site-packages\n install_platlib: $base/Lib/site-packages\n install_lib: None\n install_headers: $base/Include/$dist_name\n install_scripts: $base/Scripts\n install_data: $base\n compile: None\n compile: True\n optimize: None\n force: None\n skip_build: 0\n record: None\n old_and_unmanageable: None\n single_version_externally_managed: None\npost-expand_basedirs():\n prefix: C:\\Python27\\ArcGIS10.2\n exec_prefix: None\n home: None\n user: 0\n install_base: C:\\Python27\\ArcGIS10.2\n install_platbase: C:\\Python27\\ArcGIS10.2\n root: None\n install_purelib: $base/Lib/site-packages\n install_platlib: $base/Lib/site-packages\n install_lib: None\n install_headers: $base/Include/$dist_name\n install_scripts: $base/Scripts\n install_data: $base\n compile: None\n compile: True\n optimize: None\n force: None\n skip_build: 0\n record: None\n old_and_unmanageable: None\n single_version_externally_managed: None\nconfig vars:\n{'base': 'C:\\\\Python27\\\\ArcGIS10.2',\n 'dist_fullname': 'MY_SCRIPT-0.1.dev90+n80eec607bac7.d20150630',\n 'dist_name': 'MY_SCRIPT',\n 'dist_version': '0.1.dev90+n80eec607bac7.d20150630',\n 'exec_prefix': 'C:\\\\Python27\\\\ArcGIS10.2',\n 'platbase': 'C:\\\\Python27\\\\ArcGIS10.2',\n 'prefix': 'C:\\\\Python27\\\\ArcGIS10.2',\n 'py_version': '2.7.10',\n 'py_version_nodot': '27',\n 'py_version_short': '2.7',\n 'sys_exec_prefix': 'C:\\\\Python27\\\\ArcGIS10.2',\n 'sys_prefix': 'C:\\\\Python27\\\\ArcGIS10.2',\n 'userbase': 'C:\\\\Users\\\\MY_USER\\\\AppData\\\\Roaming\\\\Python',\n 'usersite': 'C:\\\\Users\\\\MY_USER\\\\AppData\\\\Roaming\\\\Python\\\\Python27\\\\site-packages'}\npost-expand_dirs():\n prefix: C:\\Python27\\ArcGIS10.2\n exec_prefix: None\n home: None\n user: 0\n install_base: C:\\Python27\\ArcGIS10.2\n install_platbase: C:\\Python27\\ArcGIS10.2\n root: None\n install_purelib: C:\\Python27\\ArcGIS10.2/Lib/site-packages\n install_platlib: C:\\Python27\\ArcGIS10.2/Lib/site-packages\n install_lib: None\n install_headers: C:\\Python27\\ArcGIS10.2/Include/MY_SCRIPT\n install_scripts: C:\\Python27\\ArcGIS10.2/Scripts\n install_data: C:\\Python27\\ArcGIS10.2\n compile: None\n compile: True\n optimize: None\n force: None\n skip_build: 0\n record: None\n old_and_unmanageable: None\n single_version_externally_managed: None\nafter prepending root:\n prefix: C:\\Python27\\ArcGIS10.2\n exec_prefix: None\n home: None\n user: 0\n install_base: C:\\Python27\\ArcGIS10.2\n install_platbase: C:\\Python27\\ArcGIS10.2\n root: None\n install_purelib: C:\\Python27\\ArcGIS10.2\\Lib\\site-packages\n install_platlib: C:\\Python27\\ArcGIS10.2\\Lib\\site-packages\n install_lib: C:\\Python27\\ArcGIS10.2\\Lib\\site-packages\\\n install_headers: C:\\Python27\\ArcGIS10.2\\Include\\MY_SCRIPT\n install_scripts: C:\\Python27\\ArcGIS10.2\\Scripts\n install_data: C:\\Python27\\ArcGIS10.2\n compile: None\n compile: True\n optimize: None\n force: None\n skip_build: 0\n record: None\n old_and_unmanageable: None\n single_version_externally_managed: None\nDistribution.get_command_obj(): creating 'build' command object\nDistribution.get_command_obj(): creating 'install_lib' command object\nDistribution.get_command_obj(): creating 'install_scripts' command object\n```\n\nBut my script isn't deleted from pip actually.\n\nAlso was added to PYTHON path manually before installing in develop mode (this is convenient to me) and contents of site-packages/easy-install.pth\n```\nimport sys; sys.__plen = len(sys.path)\nimport sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)\n```\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/403\n", + "score": 1.0874753 + }, + { + "url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/16", + "repository_url": "https://api.github.com/repos/dronekit/dronekit-sitl", + "labels_url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/16/labels{/name}", + "comments_url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/16/comments", + "events_url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/16/events", + "html_url": "https://github.com/dronekit/dronekit-sitl/issues/16", + "id": 93917057, + "number": 16, + "title": "dronekit-sitl-runner should spawn mavproxy to set up UDP", + "user": { + "login": "hamishwillee", + "id": 5368500, + "avatar_url": "https://avatars.githubusercontent.com/u/5368500?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hamishwillee", + "html_url": "https://github.com/hamishwillee", + "followers_url": "https://api.github.com/users/hamishwillee/followers", + "following_url": "https://api.github.com/users/hamishwillee/following{/other_user}", + "gists_url": "https://api.github.com/users/hamishwillee/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hamishwillee/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hamishwillee/subscriptions", + "organizations_url": "https://api.github.com/users/hamishwillee/orgs", + "repos_url": "https://api.github.com/users/hamishwillee/repos", + "events_url": "https://api.github.com/users/hamishwillee/events{/privacy}", + "received_events_url": "https://api.github.com/users/hamishwillee/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/dronekit/dronekit-sitl/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 11, + "created_at": "2015-07-09T00:06:37Z", + "updated_at": "2015-11-13T01:00:58Z", + "closed_at": null, + "body": "To set up SITL you call the following lines( in separate terminals):\r\n```\r\ndronekit-sitl copter-3.4-dev -I0 -S --model quad --home=-35.363261,149.165230,584,353\r\nmavproxy.py --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501 --out 127.0.0.1:14550 --out 127.0.0.1:14551\r\n```\r\nThe first line starts SITL which only exposes its TCP connection and waits.\r\n\r\nThe second line spawns an instance of mavproxy that connects SITL TCP and forwards packets to UDP localhost.\r\n\r\nThe requirement is that dronekit-sitle-runner spawn mavproxy for you. This would be more like using the familiar `sim_vehicle.sh`", + "score": 0.28503266 + }, + { + "url": "https://api.github.com/repos/pyFFTW/pyFFTW/issues/64", + "repository_url": "https://api.github.com/repos/pyFFTW/pyFFTW", + "labels_url": "https://api.github.com/repos/pyFFTW/pyFFTW/issues/64/labels{/name}", + "comments_url": "https://api.github.com/repos/pyFFTW/pyFFTW/issues/64/comments", + "events_url": "https://api.github.com/repos/pyFFTW/pyFFTW/issues/64/events", + "html_url": "https://github.com/pyFFTW/pyFFTW/issues/64", + "id": 95904256, + "number": 64, + "title": "Clean install from requirements.txt file - ImportError: No module named 'numpy'", + "user": { + "login": "ferdinandvanwyk", + "id": 2574004, + "avatar_url": "https://avatars.githubusercontent.com/u/2574004?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ferdinandvanwyk", + "html_url": "https://github.com/ferdinandvanwyk", + "followers_url": "https://api.github.com/users/ferdinandvanwyk/followers", + "following_url": "https://api.github.com/users/ferdinandvanwyk/following{/other_user}", + "gists_url": "https://api.github.com/users/ferdinandvanwyk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ferdinandvanwyk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ferdinandvanwyk/subscriptions", + "organizations_url": "https://api.github.com/users/ferdinandvanwyk/orgs", + "repos_url": "https://api.github.com/users/ferdinandvanwyk/repos", + "events_url": "https://api.github.com/users/ferdinandvanwyk/events{/privacy}", + "received_events_url": "https://api.github.com/users/ferdinandvanwyk/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pyFFTW/pyFFTW/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pyFFTW/pyFFTW/labels/help%20wanted", + "name": "help wanted", + "color": "009800" + }, + { + "url": "https://api.github.com/repos/pyFFTW/pyFFTW/labels/more%20information%20needed", + "name": "more information needed", + "color": "009800" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 16, + "created_at": "2015-07-19T10:21:31Z", + "updated_at": "2016-01-29T22:22:21Z", + "closed_at": null, + "body": "I am trying to set up a project using pyFFTW and want all my requirements to be listed in the `requirements.txt` file and installed via\r\n```\r\npip install -r requirements.txt\r\n```\r\n\r\nHowever, given a `requirements.txt` file with only the following inside\r\n```\r\nnumpy\r\npyfftw\r\n```\r\n\r\nWhen I run the installation command, I get the following error:\r\n```\r\n$ pip install -r requirements.txt \r\nDownloading/unpacking numpy (from -r requirements.txt (line 1))\r\n Downloading numpy-1.9.2.tar.gz (4.0MB): 4.0MB downloaded\r\n Running setup.py (path:/home/vanwyk/py_envs/py3/build/numpy/setup.py) egg_info for package numpy\r\n Running from numpy source directory.\r\n \r\n warning: no previously-included files matching '*.pyc' found anywhere in distribution\r\n warning: no previously-included files matching '*.pyo' found anywhere in distribution\r\n warning: no previously-included files matching '*.pyd' found anywhere in distribution\r\nDownloading/unpacking pyfftw (from -r requirements.txt (line 2))\r\n Downloading pyFFTW-0.9.2.tar.gz (336kB): 336kB downloaded\r\n Running setup.py (path:/home/vanwyk/py_envs/py3/build/pyfftw/setup.py) egg_info for package pyfftw\r\n Traceback (most recent call last):\r\n File \"\", line 17, in \r\n File \"/home/vanwyk/py_envs/py3/build/pyfftw/setup.py\", line 25, in \r\n import numpy\r\n ImportError: No module named 'numpy'\r\n Complete output from command python setup.py egg_info:\r\n Traceback (most recent call last):\r\n\r\n File \"\", line 17, in \r\n\r\n File \"/home/vanwyk/py_envs/py3/build/pyfftw/setup.py\", line 25, in \r\n\r\n import numpy\r\n\r\nImportError: No module named 'numpy'\r\n\r\n----------------------------------------\r\nCleaning up...\r\n```\r\n\r\nBut if I install `numpy` and `pyfftw` separately things work fine. Is there any way to make installing from `requirements.txt` work so installing dependencies doesn't become a two-step process?\r\n\r\nUbuntu 14.04 LTS\r\nPython 3.4 running in virtualenv", + "score": 0.7448452 + }, + { + "url": "https://api.github.com/repos/cobrateam/splinter/issues/422", + "repository_url": "https://api.github.com/repos/cobrateam/splinter", + "labels_url": "https://api.github.com/repos/cobrateam/splinter/issues/422/labels{/name}", + "comments_url": "https://api.github.com/repos/cobrateam/splinter/issues/422/comments", + "events_url": "https://api.github.com/repos/cobrateam/splinter/issues/422/events", + "html_url": "https://github.com/cobrateam/splinter/issues/422", + "id": 97335882, + "number": 422, + "title": "Custom firefox profile doesn't work in Windows", + "user": { + "login": "endolith", + "id": 58611, + "avatar_url": "https://avatars.githubusercontent.com/u/58611?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/endolith", + "html_url": "https://github.com/endolith", + "followers_url": "https://api.github.com/users/endolith/followers", + "following_url": "https://api.github.com/users/endolith/following{/other_user}", + "gists_url": "https://api.github.com/users/endolith/gists{/gist_id}", + "starred_url": "https://api.github.com/users/endolith/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/endolith/subscriptions", + "organizations_url": "https://api.github.com/users/endolith/orgs", + "repos_url": "https://api.github.com/users/endolith/repos", + "events_url": "https://api.github.com/users/endolith/events{/privacy}", + "received_events_url": "https://api.github.com/users/endolith/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/cobrateam/splinter/labels/bug", + "name": "bug", + "color": "ed1313" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 2, + "created_at": "2015-07-26T17:29:41Z", + "updated_at": "2015-07-27T15:19:00Z", + "closed_at": null, + "body": "[Documentation](http://splinter.readthedocs.org/en/latest/drivers/firefox.html#how-to-use-a-specific-profile-for-firefox) says you can select an existing firefox profile instead of creating a temporary one each time:\r\n\r\n browser = Browser('firefox', profile='my_profile')\r\n\r\nBut this doesn't actually work, it doesn't know where to search for the profile:\r\n\r\n```\r\nbrowser = Browser('firefox', profile='default')\r\n...\r\nWindowsError: [Error 3] The system cannot find the path specified: 'default/*.*'\r\n```\r\n\r\nsame for `profile='272kp1a1.default'`, `profile='272kp1a1'`, etc. though it isn't explained in the docs which type of string is correct.", + "score": 2.9287922 + }, + { + "url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5115", + "repository_url": "https://api.github.com/repos/scikit-learn/scikit-learn", + "labels_url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5115/labels{/name}", + "comments_url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5115/comments", + "events_url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5115/events", + "html_url": "https://github.com/scikit-learn/scikit-learn/issues/5115", + "id": 100597083, + "number": 5115, + "title": "GridSearchCV freezes indefinitely with multithreading enabled (i.e. w/ n_jobs != 1)", + "user": { + "login": "eric-czech", + "id": 6130352, + "avatar_url": "https://avatars.githubusercontent.com/u/6130352?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/eric-czech", + "html_url": "https://github.com/eric-czech", + "followers_url": "https://api.github.com/users/eric-czech/followers", + "following_url": "https://api.github.com/users/eric-czech/following{/other_user}", + "gists_url": "https://api.github.com/users/eric-czech/gists{/gist_id}", + "starred_url": "https://api.github.com/users/eric-czech/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/eric-czech/subscriptions", + "organizations_url": "https://api.github.com/users/eric-czech/orgs", + "repos_url": "https://api.github.com/users/eric-czech/repos", + "events_url": "https://api.github.com/users/eric-czech/events{/privacy}", + "received_events_url": "https://api.github.com/users/eric-czech/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/scikit-learn/scikit-learn/labels/Bug", + "name": "Bug", + "color": "e10c02" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 33, + "created_at": "2015-08-12T17:47:36Z", + "updated_at": "2016-05-06T19:14:47Z", + "closed_at": null, + "body": "I've been intermittently running into this issue (in the subject) with GridSearchCV over a year now, across python 2.7, 3.3, and 3.4, two jobs, several different mac osx platforms/laptops, and many different versions of numpy and scikit-learn (I keep them updated pretty well).\r\n\r\nI've tried all of these suggestions and none of them __always__ work:\r\n\r\nhttps://github.com/scikit-learn/scikit-learn/issues/3605 - Setting multiprocessing start method to 'forkserver'\r\nhttps://github.com/scikit-learn/scikit-learn/issues/2889 - Having issues ONLY when custom scoring functions are passed (I've absolutely had this problem where the same GridSearchCV calls with n_jobs != 1 freeze with a custom scorer but do just fine without one)\r\nhttps://github.com/joblib/joblib/issues/138 - Setting environment variables from MKL thread counts (I have tried this when running a numpy/sklearn built against mkl from an Anaconda distribution)\r\nScaling inputs and making sure there are no errors with n_jobs=1 - I'm completely sure that the things I'm trying to do on multiple threads run correctly on one thread, and in a small amount of time\r\n\r\nIt's a very frustrating problem that always seems to pop back up right when I'm confident it's gone, and the ONLY workaround that works __100% of the time__ for me is going to the source for GridSearchCV in whatever sklearn distribution I'm on an manually changing the backend set in the call to Paralell to 'threading' (instead of multiprocessing).\r\n\r\nI haven't benchmarked the difference between that hack and setting n_jobs=1, but would there be any reason to expect any gains with the threading backend over no parallelization at all? Certainly, it wouldn't be as good as multiprocessing but at least it's more stable.\r\n\r\nbtw the most recent versions I've had the same problem on are:\r\n- Mac OS 10.9.5\r\n- Python 3.4.3 :: Continuum Analytics, Inc.\r\n- scikit-learn==0.16.1\r\n- scipy==0.16.0\r\n- numpy==1.9.2\r\n- pandas==0.16.2\r\n- joblib==0.8.4", + "score": 0.24770187 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/3028", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/3028/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/3028/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/3028/events", + "html_url": "https://github.com/pypa/pip/issues/3028", + "id": 100766896, + "number": 3028, + "title": "pip install zc.recipe.egg fails on pip >= 7.x", + "user": { + "login": "kalbermattenm", + "id": 1681332, + "avatar_url": "https://avatars.githubusercontent.com/u/1681332?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kalbermattenm", + "html_url": "https://github.com/kalbermattenm", + "followers_url": "https://api.github.com/users/kalbermattenm/followers", + "following_url": "https://api.github.com/users/kalbermattenm/following{/other_user}", + "gists_url": "https://api.github.com/users/kalbermattenm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kalbermattenm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kalbermattenm/subscriptions", + "organizations_url": "https://api.github.com/users/kalbermattenm/orgs", + "repos_url": "https://api.github.com/users/kalbermattenm/repos", + "events_url": "https://api.github.com/users/kalbermattenm/events{/privacy}", + "received_events_url": "https://api.github.com/users/kalbermattenm/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/setuptools", + "name": "setuptools", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 10, + "created_at": "2015-08-13T13:18:03Z", + "updated_at": "2015-11-23T06:32:03Z", + "closed_at": null, + "body": "On Windows, I was using pip 7.0.1 to install some eggs, notably `zc.recipe.egg` which is part of buildout.\r\n\r\nSince I upgraded virtualenv to version 13.1.0, which comes with a local pip wheel and thus installs pip 7.1.0, when I run `pip install zc.recipe.egg` in my virtual env, I get an error:\r\n```\r\nD:\\Applications\\tmp\\test2>Scripts\\pip.exe install zc.recipe.egg\r\nCollecting zc.recipe.egg\r\nInstalling collected packages: zc.recipe.egg\r\nzc.recipe.egg is in an unsupported or invalid wheel\r\n```\r\nThe error message `is in an unsupported or invalid wheel` is not very explicit and I do not know why pip 7.1.0 (and only this version of pip) is complaining about this egg ?\r\n\r\nI only have this problem with this egg...\r\n\r\nDoes anyone have a clue on what this means, why it appeared when I change my pip version and if there is a way to fix it ?", + "score": 7.2523046 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/26665", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/26665/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/26665/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/26665/events", + "html_url": "https://github.com/saltstack/salt/issues/26665", + "id": 103287611, + "number": 26665, + "title": "salt on MacOS X - adding python RAET lib breaks \"salt-call --versions\" output", + "user": { + "login": "TheBigBear", + "id": 471105, + "avatar_url": "https://avatars.githubusercontent.com/u/471105?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/TheBigBear", + "html_url": "https://github.com/TheBigBear", + "followers_url": "https://api.github.com/users/TheBigBear/followers", + "following_url": "https://api.github.com/users/TheBigBear/following{/other_user}", + "gists_url": "https://api.github.com/users/TheBigBear/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TheBigBear/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TheBigBear/subscriptions", + "organizations_url": "https://api.github.com/users/TheBigBear/orgs", + "repos_url": "https://api.github.com/users/TheBigBear/repos", + "events_url": "https://api.github.com/users/TheBigBear/events{/privacy}", + "received_events_url": "https://api.github.com/users/TheBigBear/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Core", + "name": "Core", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Help%20Wanted", + "name": "Help Wanted", + "color": "009800" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/OS%20X", + "name": "OS X", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P4", + "name": "P4", + "color": "031a39" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/13", + "html_url": "https://github.com/saltstack/salt/milestones/Approved", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/13/labels", + "id": 9265, + "number": 13, + "title": "Approved", + "description": "All issues that are ready to be worked on, both bugs and features.", + "creator": { + "login": "thatch45", + "id": 507599, + "avatar_url": "https://avatars.githubusercontent.com/u/507599?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thatch45", + "html_url": "https://github.com/thatch45", + "followers_url": "https://api.github.com/users/thatch45/followers", + "following_url": "https://api.github.com/users/thatch45/following{/other_user}", + "gists_url": "https://api.github.com/users/thatch45/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thatch45/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thatch45/subscriptions", + "organizations_url": "https://api.github.com/users/thatch45/orgs", + "repos_url": "https://api.github.com/users/thatch45/repos", + "events_url": "https://api.github.com/users/thatch45/events{/privacy}", + "received_events_url": "https://api.github.com/users/thatch45/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 3040, + "closed_issues": 3781, + "state": "open", + "created_at": "2011-05-14T04:00:56Z", + "updated_at": "2016-06-21T19:49:47Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2015-08-26T14:49:41Z", + "updated_at": "2015-09-25T21:25:42Z", + "closed_at": null, + "body": "On a Mac OS X 10.10.5 \r\n```uname -a``` is reporting: \r\n\r\n```\r\nDarwin uk-it-100 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_6\r\n```\r\n\r\nand my ```salt-call --versions``` is reporting:\r\n\r\n```\r\n Salt: 2015.5.5\r\n Python: 2.6.9 (unknown, Jul 14 2015, 19:46:31)\r\n Jinja2: 2.8\r\n M2Crypto: 0.22\r\n msgpack-python: 0.4.6\r\n msgpack-pure: 0.1.3\r\n pycrypto: 2.6.1\r\n libnacl: Not Installed\r\n PyYAML: 3.11\r\n ioflo: 1.3.9\r\n PyZMQ: 14.7.0\r\n RAET: Not Installed\r\n ZMQ: 4.1.3\r\n Mako: 1.0.1\r\n Tornado: 4.2.1\r\n timelib: Not Installed\r\n dateutil: 2.4.2\r\n```\r\n\r\n__But if I do__ a ```pip install -U RAET```, this adds both ```RAET``` and ```libnacl```, as expected.\r\n\r\nlog of ```pip install -U RAET```:\r\n\r\n```\r\npip install RAET \r\nCollecting RAET\r\n/Library/Python/2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n InsecurePlatformWarning\r\n Using cached raet-0.6.3.tar.gz\r\nRequirement already satisfied (use --upgrade to upgrade): ioflo>=1.2.1 in /Library/Python/2.6/site-packages (from RAET)\r\nCollecting libnacl>=1.4.0 (from RAET)\r\n Using cached libnacl-1.4.3.tar.gz\r\nRequirement already satisfied (use --upgrade to upgrade): six>=1.6.1 in /Library/Python/2.6/site-packages (from RAET)\r\nRequirement already satisfied (use --upgrade to upgrade): importlib>=1.0.3 in /Library/Python/2.6/site-packages (from RAET)\r\nRequirement already satisfied (use --upgrade to upgrade): argparse>=1.2.1 in /Library/Python/2.6/site-packages (from RAET)\r\nRequirement already satisfied (use --upgrade to upgrade): enum34>=1.0.4 in /Library/Python/2.6/site-packages (from RAET)\r\nRequirement already satisfied (use --upgrade to upgrade): ordereddict in /Library/Python/2.6/site-packages (from enum34>=1.0.4->RAET)\r\nInstalling collected packages: libnacl, RAET\r\n Running setup.py install for libnacl\r\n Running setup.py install for RAET\r\nSuccessfully installed RAET-0.6.3 libnacl-1.4.3\r\n```\r\n\r\n__But after that__ the ```salt-call --versions``` \"breaks\" and only shows:\r\n```\r\nsalt-call --versions\r\nTraceback (most recent call last):\r\n File \"/usr/local/bin/salt-call\", line 9, in \r\n load_entry_point('salt==2015.5.5', 'console_scripts', 'salt-call')()\r\n File \"/Library/Python/2.6/site-packages/salt/scripts.py\", line 221, in salt_call\r\n import salt.cli.call\r\n File \"/Library/Python/2.6/site-packages/salt/cli/call.py\", line 9, in \r\n import salt.cli.caller\r\n File \"/Library/Python/2.6/site-packages/salt/cli/caller.py\", line 35, in \r\n from raet import raeting, nacling\r\n File \"/Library/Python/2.6/site-packages/raet/__init__.py\", line 12, in \r\n importlib.import_module(\".{0}\".format(m), package='raet')\r\n File \"/Library/Python/2.6/site-packages/importlib/__init__.py\", line 37, in import_module\r\n __import__(name)\r\n File \"/Library/Python/2.6/site-packages/raet/nacling.py\", line 11, in \r\n import libnacl\r\n File \"/Library/Python/2.6/site-packages/libnacl/__init__.py\", line 89, in \r\n nacl = _get_nacl()\r\n File \"/Library/Python/2.6/site-packages/libnacl/__init__.py\", line 55, in _get_nacl\r\n raise OSError(msg)\r\nOSError: Could not locate nacl lib, searched for libsodium, tweetnacl\r\n```\r\nUntil I do a ```pip unistall libnacl RAET```, after which ```salt-call --versions``` works again as expected.\r\n\r\nPS: I \"think\" I had seen the same (or very similar) issue with the ```python RAET``` and ```ibnacl``` lib on windows around the early 2015.5 series, but on a ```2015.8.0rc3``` I no longer see that issue there.", + "score": 0.7841893 + }, + { + "url": "https://api.github.com/repos/PyCQA/pylint/issues/634", + "repository_url": "https://api.github.com/repos/PyCQA/pylint", + "labels_url": "https://api.github.com/repos/PyCQA/pylint/issues/634/labels{/name}", + "comments_url": "https://api.github.com/repos/PyCQA/pylint/issues/634/comments", + "events_url": "https://api.github.com/repos/PyCQA/pylint/issues/634/events", + "html_url": "https://github.com/PyCQA/pylint/issues/634", + "id": 121204667, + "number": 634, + "title": "[easy] html report raises UnicodeEncodeError on unicode docstrings", + "user": { + "login": "pylint-bot", + "id": 16198247, + "avatar_url": "https://avatars.githubusercontent.com/u/16198247?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pylint-bot", + "html_url": "https://github.com/pylint-bot", + "followers_url": "https://api.github.com/users/pylint-bot/followers", + "following_url": "https://api.github.com/users/pylint-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/pylint-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pylint-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pylint-bot/subscriptions", + "organizations_url": "https://api.github.com/users/pylint-bot/orgs", + "repos_url": "https://api.github.com/users/pylint-bot/repos", + "events_url": "https://api.github.com/users/pylint-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/pylint-bot/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/PyCQA/pylint/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 9, + "created_at": "2015-08-31T19:38:26Z", + "updated_at": "2015-12-09T10:18:46Z", + "closed_at": null, + "body": "Originally reported by: **Bjorn Pettersen (BitBucket: [thebjorn](http://bitbucket.org/thebjorn), GitHub: @thebjorn?)**\n\n----------------------------------------\n\nThis is triggered by unicode docstrings in duplicated code, e.g. create a module where this code is duplicated:\n\n```\n#!python\n\n# -*- coding: utf-8 -*-\n\ndef funcname(hello):\n u'æøå'\n for i in range(hello):\n print 'world'\n return hello + 'world'\n\n```\n\nand you'll get the following error (notice that there is no reference to which file is in error):\n\n```\n#!python\n\n(dev) go|c:\\srv\\tmp> pylint upyli -fhtml\nNo config file found, using default configuration\nTraceback (most recent call last):\n File \"c:\\python27\\Lib\\runpy.py\", line 162, in _run_module_as_main\n \"__main__\", fname, loader, pkg_name)\n File \"c:\\python27\\Lib\\runpy.py\", line 72, in _run_code\n exec code in run_globals\n File \"c:\\srv\\venv\\dev\\Scripts\\pylint.exe\\__main__.py\", line 9, in \n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\__init__.py\", line 23, in run_pylint\n Run(sys.argv[1:])\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\lint.py\", line 1332, in __init__\n linter.check(args)\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\lint.py\", line 747, in check\n self._do_check(files_or_modules)\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\lint.py\", line 878, in _do_check\n checker.close()\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\checkers\\similar.py\", line 320, in close\n self.add_message('R0801', args=(len(couples), '\\n'.join(msg)))\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\checkers\\__init__.py\", line 101, in add_message\n self.linter.add_message(msg_id, line, node, args, confidence)\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\utils.py\", line 410, in add_message\n (abspath, path, module, obj, line or 1, col_offset or 0), msg, confidence))\n File \"c:\\srv\\venv\\dev\\lib\\site-packages\\pylint\\reporters\\html.py\", line 70, in handle_message\n self.msgs += [str(getattr(msg, field)) for field in self.msgargs]\nUnicodeEncodeError: 'ascii' codec can't encode characters in position 87-89: ordinal not in range(128)\n```\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/logilab/pylint/issue/634\n", + "score": 0.5391859 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/424", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/424/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/424/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/424/events", + "html_url": "https://github.com/pypa/setuptools/issues/424", + "id": 144281624, + "number": 424, + "title": "__PYVENV_LAUNCHER__ not considered when cross-compiling", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/minor", + "name": "minor", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2015-09-01T13:59:03Z", + "updated_at": "2016-03-31T14:54:30Z", + "closed_at": null, + "body": "Originally reported by: **commodo (Bitbucket: [commodo](http://bitbucket.org/commodo), GitHub: [commodo](http://github.com/commodo))**\n\n----------------------------------------\n\nWell, maybe I did not formulate this too well.\nContext: we're cross-compiling python-setuptools for OpenWRT, and we're using the __PYVENV_LAUNCHER__ to create/cross-compile scripts (easy_install and pip) to have \"#!/usr/bin/python2.7\" in the script header rather than the host python (which is in a build path like /home/x/work/openwrt/staging_dir/host/bin/python2).\n\nIt seems that the command/install_scripts.py file provides and executable path for python, which happens to be the host python.\nThat means, that when the target setuptools is built, it will try to run the python at that long build path and won't work.\n\nNot sure what the best fix is, but for now, we're patching (in OpenWRT) with this (check below please):\nhttps://github.com/commodo/packages/commit/b9a0a650352684d8111758c5381c2853585b2015\n\nThis worked for python-setuptools up to a point ; can't be sure when this changed, since I am not comfortable with Mercurial (i.e. I was lazy to dig deeper in commits).\nThis is our current fix, but we'd like an official upstream version.\n\nThanks :)\nP.S: while I'm reporting this, maybe I'll try to see why I added this patch as well:\nhttps://github.com/openwrt/packages/blob/master/lang/python-setuptools/patches/0001-remove-windows-support.patch\nIt was added some time ago and I forgot why.\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/424\n", + "score": 0.7631212 + }, + { + "url": "https://api.github.com/repos/c-w/Gutenberg/issues/22", + "repository_url": "https://api.github.com/repos/c-w/Gutenberg", + "labels_url": "https://api.github.com/repos/c-w/Gutenberg/issues/22/labels{/name}", + "comments_url": "https://api.github.com/repos/c-w/Gutenberg/issues/22/comments", + "events_url": "https://api.github.com/repos/c-w/Gutenberg/issues/22/events", + "html_url": "https://github.com/c-w/Gutenberg/issues/22", + "id": 104579988, + "number": 22, + "title": "frozenset on query", + "user": { + "login": "franciscovargas", + "id": 5540172, + "avatar_url": "https://avatars.githubusercontent.com/u/5540172?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/franciscovargas", + "html_url": "https://github.com/franciscovargas", + "followers_url": "https://api.github.com/users/franciscovargas/followers", + "following_url": "https://api.github.com/users/franciscovargas/following{/other_user}", + "gists_url": "https://api.github.com/users/franciscovargas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/franciscovargas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/franciscovargas/subscriptions", + "organizations_url": "https://api.github.com/users/franciscovargas/orgs", + "repos_url": "https://api.github.com/users/franciscovargas/repos", + "events_url": "https://api.github.com/users/franciscovargas/events{/privacy}", + "received_events_url": "https://api.github.com/users/franciscovargas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/c-w/Gutenberg/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "c-w", + "id": 1086421, + "avatar_url": "https://avatars.githubusercontent.com/u/1086421?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/c-w", + "html_url": "https://github.com/c-w", + "followers_url": "https://api.github.com/users/c-w/followers", + "following_url": "https://api.github.com/users/c-w/following{/other_user}", + "gists_url": "https://api.github.com/users/c-w/gists{/gist_id}", + "starred_url": "https://api.github.com/users/c-w/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/c-w/subscriptions", + "organizations_url": "https://api.github.com/users/c-w/orgs", + "repos_url": "https://api.github.com/users/c-w/repos", + "events_url": "https://api.github.com/users/c-w/events{/privacy}", + "received_events_url": "https://api.github.com/users/c-w/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 11, + "created_at": "2015-09-02T21:55:50Z", + "updated_at": "2016-05-29T21:30:51Z", + "closed_at": null, + "body": "The query example ```(print(get_etexts('title', 'Moby Dick; Or, The Whale')))``` is returning frozenset([]) for me is this a current bug or has pip just set this up wrongly ?", + "score": 1.7549808 + }, + { + "url": "https://api.github.com/repos/vmalyi/adb_android/issues/23", + "repository_url": "https://api.github.com/repos/vmalyi/adb_android", + "labels_url": "https://api.github.com/repos/vmalyi/adb_android/issues/23/labels{/name}", + "comments_url": "https://api.github.com/repos/vmalyi/adb_android/issues/23/comments", + "events_url": "https://api.github.com/repos/vmalyi/adb_android/issues/23/events", + "html_url": "https://github.com/vmalyi/adb_android/issues/23", + "id": 104803785, + "number": 23, + "title": "ImportError: No module named 'var'", + "user": { + "login": "Blooprint", + "id": 6580235, + "avatar_url": "https://avatars.githubusercontent.com/u/6580235?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Blooprint", + "html_url": "https://github.com/Blooprint", + "followers_url": "https://api.github.com/users/Blooprint/followers", + "following_url": "https://api.github.com/users/Blooprint/following{/other_user}", + "gists_url": "https://api.github.com/users/Blooprint/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Blooprint/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Blooprint/subscriptions", + "organizations_url": "https://api.github.com/users/Blooprint/orgs", + "repos_url": "https://api.github.com/users/Blooprint/repos", + "events_url": "https://api.github.com/users/Blooprint/events{/privacy}", + "received_events_url": "https://api.github.com/users/Blooprint/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/vmalyi/adb_android/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 10, + "created_at": "2015-09-03T23:55:56Z", + "updated_at": "2016-06-02T03:04:57Z", + "closed_at": null, + "body": "error in the adb_android.py file. help?", + "score": 1.2356366 + }, + { + "url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5269", + "repository_url": "https://api.github.com/repos/scikit-learn/scikit-learn", + "labels_url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5269/labels{/name}", + "comments_url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5269/comments", + "events_url": "https://api.github.com/repos/scikit-learn/scikit-learn/issues/5269/events", + "html_url": "https://github.com/scikit-learn/scikit-learn/issues/5269", + "id": 106353942, + "number": 5269, + "title": "Overflow error with sklearn.datasets.load_svmlight_file()", + "user": { + "login": "makemate", + "id": 12397548, + "avatar_url": "https://avatars.githubusercontent.com/u/12397548?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/makemate", + "html_url": "https://github.com/makemate", + "followers_url": "https://api.github.com/users/makemate/followers", + "following_url": "https://api.github.com/users/makemate/following{/other_user}", + "gists_url": "https://api.github.com/users/makemate/gists{/gist_id}", + "starred_url": "https://api.github.com/users/makemate/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/makemate/subscriptions", + "organizations_url": "https://api.github.com/users/makemate/orgs", + "repos_url": "https://api.github.com/users/makemate/repos", + "events_url": "https://api.github.com/users/makemate/events{/privacy}", + "received_events_url": "https://api.github.com/users/makemate/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/scikit-learn/scikit-learn/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/scikit-learn/scikit-learn/labels/Need%20Contributor", + "name": "Need Contributor", + "color": "009800" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 11, + "created_at": "2015-09-14T14:25:41Z", + "updated_at": "2015-12-10T14:47:49Z", + "closed_at": null, + "body": "Scikit-learn version: 0.16.1 OS X Yosemite 10.10.5\r\n\r\nI've created a SVMlight file with only one line from a pandas dataframe:\r\n\r\n```\r\nfrom sklearn.datasets import load_svmlight_file\r\nfrom sklearn.datasets import dump_svmlight_file\r\n\r\ndump_svmlight_file(toy_data.drop([\"Output\"], axis=1),toy_data['Output'],\"../data/oneline_pid.txt\", query_id=toy_data['EventID'])\r\n```\r\n\r\nWhen I open the file in an editor the result looks like this:\r\n\r\n0 qid:72048431380967004 0:1440446648 1:72048431380967004 2:236784985 \r\n\r\nWhen I try to load the file with query_id=True I get an overflow error.\r\n\r\n```\r\ntrain = load_svmlight_file(\"../data/oneline_pid.txt\", dtype=np.uint64, query_id=True)\r\n```\r\nOverflowError: signed integer is greater than maximum\r\n\r\nIf I load the file with query_id=False there appears no error message but the value for the query_id is wrong. This is the output:\r\n\r\n[[ 1440446648 72048431380967008 236784985 ]]\r\n\r\n72048431380967004 appears now as 72048431380967008.\r\n\r\nHow do I avoid this error, the maximum value of np.uint64 is 9223372036854775807 so there should be no overflow error.\r\n\r\nHave tried to load with np.int64 as data type too, but the output is the same.\r\n\r\n\r\n", + "score": 0.48332724 + }, + { + "url": "https://api.github.com/repos/home-assistant/home-assistant/issues/393", + "repository_url": "https://api.github.com/repos/home-assistant/home-assistant", + "labels_url": "https://api.github.com/repos/home-assistant/home-assistant/issues/393/labels{/name}", + "comments_url": "https://api.github.com/repos/home-assistant/home-assistant/issues/393/comments", + "events_url": "https://api.github.com/repos/home-assistant/home-assistant/issues/393/events", + "html_url": "https://github.com/home-assistant/home-assistant/issues/393", + "id": 107148696, + "number": 393, + "title": "Loading configuration.yaml triggers UnicodeEncodeError on Windows", + "user": { + "login": "pavoni", + "id": 4487313, + "avatar_url": "https://avatars.githubusercontent.com/u/4487313?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pavoni", + "html_url": "https://github.com/pavoni", + "followers_url": "https://api.github.com/users/pavoni/followers", + "following_url": "https://api.github.com/users/pavoni/following{/other_user}", + "gists_url": "https://api.github.com/users/pavoni/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pavoni/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pavoni/subscriptions", + "organizations_url": "https://api.github.com/users/pavoni/orgs", + "repos_url": "https://api.github.com/users/pavoni/repos", + "events_url": "https://api.github.com/users/pavoni/events{/privacy}", + "received_events_url": "https://api.github.com/users/pavoni/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/home-assistant/home-assistant/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/home-assistant/home-assistant/labels/windows", + "name": "windows", + "color": "fef2c0" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-09-18T07:29:07Z", + "updated_at": "2015-09-20T20:34:52Z", + "closed_at": null, + "body": "I just tried running master on my windows machine (using 'python setup.py develop' (this does run python 3.4) - and I get the following:-\r\n\r\n````\r\n$ hass\r\nConfig directory: C:\\Users\\Greg\\AppData\\Roaming\\.homeassistant\r\nTraceback (most recent call last):\r\n File \"c:\\Python34\\Scripts\\hass-script.py\", line 9, in \r\n load_entry_point('homeassistant==0.7.3.dev0', 'console_scripts', 'hass')()\r\n File \"c:\\users\\greg\\home-assistant\\homeassistant\\__main__.py\", line 250, in main\r\n skip_pip=args.skip_pip, log_rotate_days=args.log_rotate_days)\r\n File \"c:\\users\\greg\\home-assistant\\homeassistant\\bootstrap.py\", line 224, in from_config_file\r\n config_dict = config_util.load_config_file(config_path)\r\n File \"c:\\users\\greg\\home-assistant\\homeassistant\\config.py\", line 117, in load_config_file\r\n return load_yaml_config_file(config_path)\r\n File \"c:\\users\\greg\\home-assistant\\homeassistant\\config.py\", line 148, in load_yaml_config_file\r\n conf_dict = parse(config_path)\r\n File \"c:\\users\\greg\\home-assistant\\homeassistant\\config.py\", line 130, in parse\r\n return yaml.load(conf_file) or {}\r\n File \"c:\\Python34\\lib\\site-packages\\yaml\\__init__.py\", line 70, in load\r\n loader = Loader(stream)\r\n File \"c:\\Python34\\lib\\site-packages\\yaml\\loader.py\", line 34, in __init__\r\n Reader.__init__(self, stream)\r\n File \"c:\\Python34\\lib\\site-packages\\yaml\\reader.py\", line 85, in __init__\r\n self.determine_encoding()\r\n File \"c:\\Python34\\lib\\site-packages\\yaml\\reader.py\", line 124, in determine_encoding\r\n self.update_raw()\r\n File \"c:\\Python34\\lib\\site-packages\\yaml\\reader.py\", line 178, in update_raw\r\n data = self.stream.read(size)\r\n File \"c:\\Python34\\lib\\codecs.py\", line 319, in decode\r\n (result, consumed) = self._buffer_decode(data, self.errors, final)\r\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xa3 in position 1709: invalid start byte\r\n````\r\n\r\nI get the same on the dev branch", + "score": 3.3511043 + }, + { + "url": "https://api.github.com/repos/pytest-dev/pytest/issues/1029", + "repository_url": "https://api.github.com/repos/pytest-dev/pytest", + "labels_url": "https://api.github.com/repos/pytest-dev/pytest/issues/1029/labels{/name}", + "comments_url": "https://api.github.com/repos/pytest-dev/pytest/issues/1029/comments", + "events_url": "https://api.github.com/repos/pytest-dev/pytest/issues/1029/events", + "html_url": "https://github.com/pytest-dev/pytest/issues/1029", + "id": 107425753, + "number": 1029, + "title": "pytest2.8 invariantly writes to working directory + fails on readonly filesystem", + "user": { + "login": "asottile", + "id": 1810591, + "avatar_url": "https://avatars.githubusercontent.com/u/1810591?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/asottile", + "html_url": "https://github.com/asottile", + "followers_url": "https://api.github.com/users/asottile/followers", + "following_url": "https://api.github.com/users/asottile/following{/other_user}", + "gists_url": "https://api.github.com/users/asottile/gists{/gist_id}", + "starred_url": "https://api.github.com/users/asottile/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/asottile/subscriptions", + "organizations_url": "https://api.github.com/users/asottile/orgs", + "repos_url": "https://api.github.com/users/asottile/repos", + "events_url": "https://api.github.com/users/asottile/events{/privacy}", + "received_events_url": "https://api.github.com/users/asottile/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pytest-dev/pytest/labels/backward%20compatibility", + "name": "backward compatibility", + "color": "f7c6c7" + }, + { + "url": "https://api.github.com/repos/pytest-dev/pytest/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/pytest-dev/pytest/labels/easy", + "name": "easy", + "color": "bfe5bf" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "RonnyPfannschmidt", + "id": 156838, + "avatar_url": "https://avatars.githubusercontent.com/u/156838?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/RonnyPfannschmidt", + "html_url": "https://github.com/RonnyPfannschmidt", + "followers_url": "https://api.github.com/users/RonnyPfannschmidt/followers", + "following_url": "https://api.github.com/users/RonnyPfannschmidt/following{/other_user}", + "gists_url": "https://api.github.com/users/RonnyPfannschmidt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/RonnyPfannschmidt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/RonnyPfannschmidt/subscriptions", + "organizations_url": "https://api.github.com/users/RonnyPfannschmidt/orgs", + "repos_url": "https://api.github.com/users/RonnyPfannschmidt/repos", + "events_url": "https://api.github.com/users/RonnyPfannschmidt/events{/privacy}", + "received_events_url": "https://api.github.com/users/RonnyPfannschmidt/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/pytest-dev/pytest/milestones/9", + "html_url": "https://github.com/pytest-dev/pytest/milestones/2.8.6", + "labels_url": "https://api.github.com/repos/pytest-dev/pytest/milestones/9/labels", + "id": 1459484, + "number": 9, + "title": "2.8.6", + "description": "", + "creator": { + "login": "RonnyPfannschmidt", + "id": 156838, + "avatar_url": "https://avatars.githubusercontent.com/u/156838?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/RonnyPfannschmidt", + "html_url": "https://github.com/RonnyPfannschmidt", + "followers_url": "https://api.github.com/users/RonnyPfannschmidt/followers", + "following_url": "https://api.github.com/users/RonnyPfannschmidt/following{/other_user}", + "gists_url": "https://api.github.com/users/RonnyPfannschmidt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/RonnyPfannschmidt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/RonnyPfannschmidt/subscriptions", + "organizations_url": "https://api.github.com/users/RonnyPfannschmidt/orgs", + "repos_url": "https://api.github.com/users/RonnyPfannschmidt/repos", + "events_url": "https://api.github.com/users/RonnyPfannschmidt/events{/privacy}", + "received_events_url": "https://api.github.com/users/RonnyPfannschmidt/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 9, + "closed_issues": 0, + "state": "closed", + "created_at": "2015-12-14T15:29:51Z", + "updated_at": "2016-06-19T18:49:56Z", + "due_on": null, + "closed_at": "2016-02-12T16:01:53Z" + }, + "comments": 20, + "created_at": "2015-09-21T00:09:05Z", + "updated_at": "2016-01-22T22:35:53Z", + "closed_at": null, + "body": "I believe these to be the same issue so I'm only making a single report.\r\n\r\n```\r\n$ virtualenv venv\r\n...\r\n$ . venv/bin/activate\r\n$ pip install pytest\r\n...\r\n$ py.test foo.py\r\n============================= test session starts ==============================\r\nplatform linux2 -- Python 2.7.6, pytest-2.8.0, py-1.4.30, pluggy-0.3.1\r\nrootdir: /tmp/foo, inifile: \r\n\r\n=============================== in 0.00 seconds ===============================\r\nERROR: file not found: foo.py\r\n(venv)asottile@work:/tmp/foo$ ls -al .cache/v/cache/lastfailed \r\n-rw-rw-r-- 1 asottile asottile 2 Sep 20 17:03 .cache/v/cache/lastfailed\r\n```\r\n\r\nAnd the error from our CI server (which is running a repo inside docker)\r\n\r\n```\r\n15:06:43 docker run -t -v /nail/scratch/jenkins_prod_slave/workspace/packages-ubuntu-allocate_playground:/work:ro nginx_test_container /bin/bash -c \"cd /work/itest && . /venv34/bin/activate && py.test -s test_nginx.py\"\r\n15:06:43 ============================= test session starts ==============================\r\n15:06:43 platform linux -- Python 3.4.2, pytest-2.8.0, py-1.4.30, pluggy-0.3.1\r\n15:06:43 rootdir: /work, inifile: \r\n15:06:43 \r\ncollecting 0 items\r\ncollecting 5 items\r\ncollected 5 items \r\n15:06:43 \r\n15:06:44 test_nginx.py\r\n...\r\n15:06:51 .Traceback (most recent call last):\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/py/_error.py\", line 64, in checked_call\r\n15:06:51 return func(*args, **kwargs)\r\n15:06:51 OSError: [Errno 30] Read-only file system: '/work/.cache/v/cache/lastfailed'\r\n15:06:51 \r\n15:06:51 During handling of the above exception, another exception occurred:\r\n15:06:51 \r\n15:06:51 Traceback (most recent call last):\r\n15:06:51 File \"/venv34/bin/py.test\", line 11, in \r\n15:06:51 sys.exit(main())\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/config.py\", line 48, in main\r\n15:06:51 return config.hook.pytest_cmdline_main(config=config)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 724, in __call__\r\n15:06:51 return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 338, in _hookexec\r\n15:06:51 return self._inner_hookexec(hook, methods, kwargs)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 333, in \r\n15:06:51 _MultiCall(methods, kwargs, hook.spec_opts).execute()\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 596, in execute\r\n15:06:51 res = hook_impl.function(*args)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/main.py\", line 115, in pytest_cmdline_main\r\n15:06:51 return wrap_session(config, _main)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/main.py\", line 110, in wrap_session\r\n15:06:51 exitstatus=session.exitstatus)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 724, in __call__\r\n15:06:51 return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 338, in _hookexec\r\n15:06:51 return self._inner_hookexec(hook, methods, kwargs)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 333, in \r\n15:06:51 _MultiCall(methods, kwargs, hook.spec_opts).execute()\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 595, in execute\r\n15:06:51 return _wrapped_call(hook_impl.function(*args), self.execute)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 249, in _wrapped_call\r\n15:06:51 wrap_controller.send(call_outcome)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/terminal.py\", line 361, in pytest_sessionfinish\r\n15:06:51 outcome.get_result()\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 278, in get_result\r\n15:06:51 raise ex[1].with_traceback(ex[2])\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 264, in __init__\r\n15:06:51 self.result = func()\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/vendored_packages/pluggy.py\", line 596, in execute\r\n15:06:51 res = hook_impl.function(*args)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/cacheprovider.py\", line 140, in pytest_sessionfinish\r\n15:06:51 config.cache.set(\"cache/lastfailed\", self.lastfailed)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/_pytest/cacheprovider.py\", line 73, in set\r\n15:06:51 with path.open(\"w\") as f:\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/py/_path/local.py\", line 353, in open\r\n15:06:51 return py.error.checked_call(open, self.strpath, mode)\r\n15:06:51 File \"/venv34/lib/python3.4/site-packages/py/_error.py\", line 84, in checked_call\r\n15:06:51 raise cls(\"%s%r\" % (func.__name__, args))\r\n15:06:51 py.error.EROFS: [Read-only file system]: open('/work/.cache/v/cache/lastfailed', 'w')\r\n15:06:51 make: *** [itest] Error 1\r\n...\r\n```", + "score": 0.4553057 + }, + { + "url": "https://api.github.com/repos/giampaolo/psutil/issues/685", + "repository_url": "https://api.github.com/repos/giampaolo/psutil", + "labels_url": "https://api.github.com/repos/giampaolo/psutil/issues/685/labels{/name}", + "comments_url": "https://api.github.com/repos/giampaolo/psutil/issues/685/comments", + "events_url": "https://api.github.com/repos/giampaolo/psutil/issues/685/events", + "html_url": "https://github.com/giampaolo/psutil/issues/685", + "id": 107655340, + "number": 685, + "title": "virtual_memory() gives highly inaccurate results", + "user": { + "login": "coderforlife", + "id": 1537688, + "avatar_url": "https://avatars.githubusercontent.com/u/1537688?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/coderforlife", + "html_url": "https://github.com/coderforlife", + "followers_url": "https://api.github.com/users/coderforlife/followers", + "following_url": "https://api.github.com/users/coderforlife/following{/other_user}", + "gists_url": "https://api.github.com/users/coderforlife/gists{/gist_id}", + "starred_url": "https://api.github.com/users/coderforlife/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/coderforlife/subscriptions", + "organizations_url": "https://api.github.com/users/coderforlife/orgs", + "repos_url": "https://api.github.com/users/coderforlife/repos", + "events_url": "https://api.github.com/users/coderforlife/events{/privacy}", + "received_events_url": "https://api.github.com/users/coderforlife/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/giampaolo/psutil/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/giampaolo/psutil/labels/OpSys-Linux", + "name": "OpSys-Linux", + "color": "FFFFFF" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 17, + "created_at": "2015-09-22T06:43:56Z", + "updated_at": "2016-03-30T11:28:10Z", + "closed_at": null, + "body": "These commands were done right after each other:\r\n\r\n In [1]: import psutil\r\n\r\n In [2]: psutil.virtual_memory()\r\n Out[2]: svmem(total=50468696064L, available=4217393152L, percent=91.6, used=50133450752L, free=335245312L, active=2109054976, inactive=2236395520, buffers=372736L, cached=3881775104)\r\n\r\n In [3]: !free\r\n total used free shared buff/cache available\r\n Mem: 49285836 1006960 327452 33552 47951424 47819748\r\n Swap: 16777212 21152 16756060\r\n\r\nfree reports KiB and psutil gives bytes. After considering that, total is spot on and free is very close. The others are not though:\r\n * buff/cache is 8% of what it should be\r\n * used is 48x what is should be\r\n * available is 8% of what is should be\r\n\r\nOverall it makes it look like I have only 4 GiB free when I should have ~46GB free.\r\n\r\nMachine info:\r\n * Python v2.7.5\r\n * psutil v3.2.1 (latest on PIP)\r\n * CentOS Linux release 7.1.1503 (Core)\r\n * Linux Kernel 3.10.0-229.7.2.el7.x86_64 SMP\r\n * RAM: 47.00 GB\r\n * CPU(s): 24x Intel(R) Xeon(R) CPU X5690 @ 3.47GHz\r\n\r\n\r\n", + "score": 0.8640775 + }, + { + "url": "https://api.github.com/repos/byt3bl33d3r/MITMf/issues/205", + "repository_url": "https://api.github.com/repos/byt3bl33d3r/MITMf", + "labels_url": "https://api.github.com/repos/byt3bl33d3r/MITMf/issues/205/labels{/name}", + "comments_url": "https://api.github.com/repos/byt3bl33d3r/MITMf/issues/205/comments", + "events_url": "https://api.github.com/repos/byt3bl33d3r/MITMf/issues/205/events", + "html_url": "https://github.com/byt3bl33d3r/MITMf/issues/205", + "id": 108662954, + "number": 205, + "title": "Plugins enabled by MITMf-API were not correctly initialized", + "user": { + "login": "xmcp", + "id": 6646473, + "avatar_url": "https://avatars.githubusercontent.com/u/6646473?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/xmcp", + "html_url": "https://github.com/xmcp", + "followers_url": "https://api.github.com/users/xmcp/followers", + "following_url": "https://api.github.com/users/xmcp/following{/other_user}", + "gists_url": "https://api.github.com/users/xmcp/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xmcp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xmcp/subscriptions", + "organizations_url": "https://api.github.com/users/xmcp/orgs", + "repos_url": "https://api.github.com/users/xmcp/repos", + "events_url": "https://api.github.com/users/xmcp/events{/privacy}", + "received_events_url": "https://api.github.com/users/xmcp/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/byt3bl33d3r/MITMf/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/byt3bl33d3r/MITMf/labels/MITMf-API", + "name": "MITMf-API", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-09-28T13:56:05Z", + "updated_at": "2016-06-15T15:43:27Z", + "closed_at": null, + "body": "**OS**: Kali Linux 2\r\n**MITMf Version**: Latest in `master` (`f6ffad2879`)\r\n\r\n## Reproducing\r\n\r\n`./mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --targets 192.168.1.104`\r\n\r\n [*] MITMf v0.9.8 - 'The Dark Side'\r\n |\r\n |_ Net-Creds v1.0 online\r\n |_ Spoof v0.6\r\n | |_ ARP spoofing enabled\r\n |_ Sergio-Proxy v0.2.1 online\r\n |_ SSLstrip v0.9 by Moxie Marlinspike online\r\n |\r\n |_ MITMf-API online\r\n * Running on http://127.0.0.1:9999/\r\n |_ HTTP server online\r\n |_ DNSChef v0.4 online\r\n |_ SMB server online\r\n\r\n 2015-09-28 21:46:14 192.168.1.104 [type:IE-6 os:Windows XP] www.microsoft.com\r\n 2015-09-28 21:46:14 192.168.1.104 [type:IE-6 os:Windows XP] go.microsoft.com\r\n 2015-09-28 21:46:14 192.168.1.104 [type:IE-6 os:Windows XP] cn.msn.com\r\n 2015-09-28 21:46:23 192.168.1.104 [type:IE-6 os:Windows XP] s.xmcp.tk\r\n 127.0.0.1 - - [28/Sep/2015 21:46:26] \"GET /Upsidedownternet/1 HTTP/1.1\" 200 -\r\n 2015-09-28 21:46:30 192.168.1.104 [type:IE-6 os:Windows XP] s.xmcp.tk\r\n 2015-09-28 21:46:30 [ProxyPlugins] Exception occurred in hooked function\r\n Traceback (most recent call last):\r\n File \"/root/MITMf/core/proxyplugins.py\", line 116, in hook\r\n a = f(**args)\r\n File \"/root/MITMf/plugins/upsidedownternet.py\", line 59, in response\r\n self.clientlog.info(\"Error: {}\".format(e), extra=request.clientInfo)\r\n AttributeError: 'Upsidedownternet' object has no attribute 'clientlog'\r\n\r\n## Explanation\r\n\r\nOnly plugins that appear in command line argument are fully initialized:\r\n\r\n # file: mitmf.py\r\n for plugin in plugins:\r\n if vars(options)[plugin.optname] is True:\r\n ProxyPlugins().add_plugin(plugin)\r\n ...\r\n plugin.setup_logger()\r\n plugin.initialize(options)\r\n ...\r\n plugin.start_config_watch()\r\n\r\nSo, if I enable a new plugin that isn't in the command line argument, it will not be initialized.\r\n\r\n # file: mitmfapi.py\r\n for p in ProxyPlugins().all_plugins:\r\n if (p.name == plugin) and (p not in ProxyPlugins().plugin_list):\r\n ProxyPlugins().add_plugin(p)\r\n # no any initializing code here\r\n return json.dumps({\"plugin\": plugin, \"response\": \"success\"})\r\n\r\n**I don't know whether this is a bug or a design defect, as it's impossible to pass options to plugins in Web API.**", + "score": 1.0333146 + }, + { + "url": "https://api.github.com/repos/xonsh/xonsh/issues/398", + "repository_url": "https://api.github.com/repos/xonsh/xonsh", + "labels_url": "https://api.github.com/repos/xonsh/xonsh/issues/398/labels{/name}", + "comments_url": "https://api.github.com/repos/xonsh/xonsh/issues/398/comments", + "events_url": "https://api.github.com/repos/xonsh/xonsh/issues/398/events", + "html_url": "https://github.com/xonsh/xonsh/issues/398", + "id": 108938374, + "number": 398, + "title": "Pyreadline and color code issue in windows ", + "user": { + "login": "jsarver", + "id": 1960956, + "avatar_url": "https://avatars.githubusercontent.com/u/1960956?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jsarver", + "html_url": "https://github.com/jsarver", + "followers_url": "https://api.github.com/users/jsarver/followers", + "following_url": "https://api.github.com/users/jsarver/following{/other_user}", + "gists_url": "https://api.github.com/users/jsarver/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jsarver/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jsarver/subscriptions", + "organizations_url": "https://api.github.com/users/jsarver/orgs", + "repos_url": "https://api.github.com/users/jsarver/repos", + "events_url": "https://api.github.com/users/jsarver/events{/privacy}", + "received_events_url": "https://api.github.com/users/jsarver/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/xonsh/xonsh/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/xonsh/xonsh/milestones/4", + "html_url": "https://github.com/xonsh/xonsh/milestones/v0.4.0", + "labels_url": "https://api.github.com/repos/xonsh/xonsh/milestones/4/labels", + "id": 1779851, + "number": 4, + "title": "v0.4.0", + "description": "", + "creator": { + "login": "scopatz", + "id": 320553, + "avatar_url": "https://avatars.githubusercontent.com/u/320553?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/scopatz", + "html_url": "https://github.com/scopatz", + "followers_url": "https://api.github.com/users/scopatz/followers", + "following_url": "https://api.github.com/users/scopatz/following{/other_user}", + "gists_url": "https://api.github.com/users/scopatz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/scopatz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/scopatz/subscriptions", + "organizations_url": "https://api.github.com/users/scopatz/orgs", + "repos_url": "https://api.github.com/users/scopatz/repos", + "events_url": "https://api.github.com/users/scopatz/events{/privacy}", + "received_events_url": "https://api.github.com/users/scopatz/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 181, + "closed_issues": 167, + "state": "open", + "created_at": "2016-05-20T22:54:44Z", + "updated_at": "2016-06-21T20:30:50Z", + "due_on": "2016-06-30T04:00:00Z", + "closed_at": null + }, + "comments": 5, + "created_at": "2015-09-29T19:07:25Z", + "updated_at": "2016-06-05T18:57:08Z", + "closed_at": null, + "body": "First off, this tool is really awesome and I love it. That being said I am having an unusual issue and I think I've narrowed it down to pyreadline. \r\n\r\nI am running windows 7 Miniconda3 python 3.4.3 64 bit and here are the steps I do to recreate the issue.\r\n\r\n conda create -n shelltest -c scopatz xonsh\r\n\r\nIt then asks me to install the follwoing which I say yes.\r\n\r\n The following NEW packages will be INSTALLED:\r\n\r\n pip: 7.1.2-py34_0\r\n ply: 3.7-py34_0\r\n python: 3.4.3-0\r\n setuptools: 18.3.2-py34_0\r\n wheel: 0.26.0-py34_1\r\n xonsh: 0.2.0-py34_1\r\n\r\nEverything installs as expected so I run \"Activate shelltest\" to activate my virtualenv and type \"xonsh\" to run my xonsh shell and get the following prompt:\r\n\r\n ☺←[1;32m☻jsarver@mycomputername☺←[1;34m☻ ~☺←[1;32m☻ ☺←[1;34m☻$☺←[0m☻\r\n\r\nSoo.. I get the odd color codes instead of the default green and blue prompt, that is strange. After some fooling around I discoverd if I install pyreadline then run xonsh I get this prompt:\r\n\r\n jsarver@mycomputername ~ $\r\n\r\nOk now things are looking up, but now if I try to utilize any multiline functionality like defining a function in the xonsh command line like so:\r\n\r\n def foo():\r\n\r\nI get the following error.\r\n\r\n jsarver@mycomputername ~ $ def foo():\r\n pre_input_hook failed\r\n Readline internal error\r\n Traceback (most recent call last):\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\pyreadline\\modes\\basemode.py\", line 124, in readline_setup\r\n self.pre_input_hook()\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\xonsh\\readline_shell.py\", line 81, in inserter\r\n readline.redisplay()\r\n AttributeError: 'module' object has no attribute 'redisplay'\r\n \r\n During handling of the above exception, another exception occurred:\r\n \r\n Traceback (most recent call last):\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\pyreadline\\console\\console.py\", line 768, in hook_wrapper_23\r\n res = ensure_str(readline_hook(prompt))\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\pyreadline\\rlmain.py\", line 569, in readline\r\n self.readline_setup(prompt)\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\pyreadline\\rlmain.py\", line 564, in readline_setup\r\n BaseReadline.readline_setup(self, prompt)\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\pyreadline\\rlmain.py\", line 253, in readline_setup\r\n return self.mode.readline_setup(prompt)\r\n File \"C:\\Miniconda3\\envs\\shelltest\\lib\\site-packages\\pyreadline\\modes\\basemode.py\", line 127, in readline_setup\r\n traceback.print_exc()\r\n NameError: name 'traceback' is not defined\r\n xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK=True\r\n File \"\", line None\r\n SyntaxError: None: no further code\r\n\r\nIf I uninstall pyreadline and go back to to funky looking prompt I can define functions all day and it works fine. I'm sure I can just change my prompt to not use color but feel I should report this because it doesn't seem to be working as intended. I did uninstall my python installations and reinstalled a fresh miniconda in the hopes it was just a borked python install, still no luck. Please let me know if there is anything else I can provide to help troubleshoot this.\r\n\r\nThanks\r\nJosh\r\n", + "score": 4.003031 + }, + { + "url": "https://api.github.com/repos/HDFGroup/hdf-compass/issues/60", + "repository_url": "https://api.github.com/repos/HDFGroup/hdf-compass", + "labels_url": "https://api.github.com/repos/HDFGroup/hdf-compass/issues/60/labels{/name}", + "comments_url": "https://api.github.com/repos/HDFGroup/hdf-compass/issues/60/comments", + "events_url": "https://api.github.com/repos/HDFGroup/hdf-compass/issues/60/events", + "html_url": "https://github.com/HDFGroup/hdf-compass/issues/60", + "id": 109167973, + "number": 60, + "title": "OPeNDAP plug-in issues", + "user": { + "login": "kyang2014", + "id": 10265107, + "avatar_url": "https://avatars.githubusercontent.com/u/10265107?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kyang2014", + "html_url": "https://github.com/kyang2014", + "followers_url": "https://api.github.com/users/kyang2014/followers", + "following_url": "https://api.github.com/users/kyang2014/following{/other_user}", + "gists_url": "https://api.github.com/users/kyang2014/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kyang2014/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kyang2014/subscriptions", + "organizations_url": "https://api.github.com/users/kyang2014/orgs", + "repos_url": "https://api.github.com/users/kyang2014/repos", + "events_url": "https://api.github.com/users/kyang2014/events{/privacy}", + "received_events_url": "https://api.github.com/users/kyang2014/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/HDFGroup/hdf-compass/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/HDFGroup/hdf-compass/labels/OPeNDAP", + "name": "OPeNDAP", + "color": "bfdadc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/HDFGroup/hdf-compass/milestones/1", + "html_url": "https://github.com/HDFGroup/hdf-compass/milestones/0.6.0", + "labels_url": "https://api.github.com/repos/HDFGroup/hdf-compass/milestones/1/labels", + "id": 1366956, + "number": 1, + "title": "0.6.0", + "description": "", + "creator": { + "login": "giumas", + "id": 2849257, + "avatar_url": "https://avatars.githubusercontent.com/u/2849257?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/giumas", + "html_url": "https://github.com/giumas", + "followers_url": "https://api.github.com/users/giumas/followers", + "following_url": "https://api.github.com/users/giumas/following{/other_user}", + "gists_url": "https://api.github.com/users/giumas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/giumas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/giumas/subscriptions", + "organizations_url": "https://api.github.com/users/giumas/orgs", + "repos_url": "https://api.github.com/users/giumas/repos", + "events_url": "https://api.github.com/users/giumas/events{/privacy}", + "received_events_url": "https://api.github.com/users/giumas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 9, + "closed_issues": 11, + "state": "open", + "created_at": "2015-10-20T19:46:17Z", + "updated_at": "2015-11-03T13:39:15Z", + "due_on": null, + "closed_at": null + }, + "comments": 41, + "created_at": "2015-09-30T20:02:59Z", + "updated_at": "2015-10-27T22:47:18Z", + "closed_at": null, + "body": "By enabling opendap_model in the compass_viewer, I can build HDF-compass on Linux. So I can test the opendap plug-in at least from my development environment.\r\n\r\nIn general,\r\nOne can open a URL served via DAP via \"Open Resource\". A simple netCDF style DAP service can be opened with the following limitations.\r\n1) The current opendap model misses group attributes (at least for root) \r\n\r\nThe attributes under the root group(or global attributes) can not be displayed. It seems the feature is missing. \r\n\r\n\"\r\n File \"/mnt/scr1/kent/hdf-compass-kent/hdf-compass/build/HDFCompass/out00-PYZ.pyz/compass_viewer.frame\", line 388, in on_menu_reopen\r\n File \"/mnt/scr1/kent/hdf-compass-kent/hdf-compass/build/HDFCompass/out00-PYZ.pyz/opendap_model\", line 272, in __init__\r\nAttributeError: 'NoneType' object has no attribute 'attributes'\r\n\r\nNote: Pydap client on the command-line can successfully retrieve the global attribute. So this is an issue related to the opendap model. \r\nPydap output is as follows:\r\n>>> dataset = open_url('http://test.opendap.org/dap/data/nc/coads_climatology.nc')\r\n>>> print dataset.attributes\r\n{'NC_GLOBAL': {'history': 'FERRET V4.30 (debug/no GUI) 15-Aug-96'}, 'DODS_EXTRA'\r\n: {'Unlimited_Dimension': 'TIME'}}\r\n\r\nI think it is promising to fix this issue. It seems the opendap_model just forgets considering the global attribute case.\r\n\r\n2) Can not serve any object names that contain special characters\r\n\r\n The opendap plug-in can only address the object names that include underscore,letter and numeric values(CF naming conventions). So essentially all HDF5 data served by the default option of the Hyrax OPeNDAP services can not be served since a \"/\" is always included in an HDF5 object name. \r\nSymptom: the plug-in just opens the file without displaying any objects. The file name displayed by the plug-in looks like to be escaped with %...h5 for the dot in an HDF5 file name. \r\n\r\nPydap command-line client doesn't have an issue to open an HDF5 file served by the default HDF5 handler although I may see %.. displayed for the special characters inside the variable names.\r\n\r\n3) Can and potentially will not serve compound datatype objects well because of the limitation of pydap\r\n\r\nMy version of the pydap(installed by using pip) can only handle a scalar compound datatype HDF5 dataset. So we should NOT expect the opendap module to be able to serve compound datatype objects well even if bugs are fixed.\r\n", + "score": 0.53101325 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:24 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "397597", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "23", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"next\", ; rel=\"last\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "bae57931a6fe678a3dffe9be8e7819c8", + "x-github-request-id": "AE1408AB:F652:8339FF3:5769F4BC" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/issues?q=windows+pip+label%3Abug+language%3Apython+state%3Aopen+&sort=created&order=asc&type=all&per_page=100&page=2&q=windows+pip+label:bug+language:python+state:open+&sort=created&order=asc&type=all&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 161, + "incomplete_results": false, + "items": [ + { + "url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/42", + "repository_url": "https://api.github.com/repos/dronekit/dronekit-sitl", + "labels_url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/42/labels{/name}", + "comments_url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/42/comments", + "events_url": "https://api.github.com/repos/dronekit/dronekit-sitl/issues/42/events", + "html_url": "https://github.com/dronekit/dronekit-sitl/issues/42", + "id": 109433303, + "number": 42, + "title": "Can't get any builds to work on Windows using new pip build", + "user": { + "login": "hamishwillee", + "id": 5368500, + "avatar_url": "https://avatars.githubusercontent.com/u/5368500?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hamishwillee", + "html_url": "https://github.com/hamishwillee", + "followers_url": "https://api.github.com/users/hamishwillee/followers", + "following_url": "https://api.github.com/users/hamishwillee/following{/other_user}", + "gists_url": "https://api.github.com/users/hamishwillee/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hamishwillee/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hamishwillee/subscriptions", + "organizations_url": "https://api.github.com/users/hamishwillee/orgs", + "repos_url": "https://api.github.com/users/hamishwillee/repos", + "events_url": "https://api.github.com/users/hamishwillee/events{/privacy}", + "received_events_url": "https://api.github.com/users/hamishwillee/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/dronekit/dronekit-sitl/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 10, + "created_at": "2015-10-02T05:29:11Z", + "updated_at": "2015-10-20T22:44:01Z", + "closed_at": null, + "body": "I uninstalled dronekit-sitl, then re-installed using ``pip2 install dronekit-sitl -UI``. Then called ``dronekit-sitl --reset``. I tried all the builds a number of times. I rebooted the computer. Repeatable results below. \r\n\r\nThe following three downloaded and started fine (ie binding the port). However only one heartbeat was received in all cases on Mission Planner - ie failed with timeout.\r\n```\r\ndronekit-sitl copter-3.3-rc11\r\ndronekit-sitl copter-3.3-rc5\r\ndronekit-sitl rover-2.50\r\n```\r\n\r\nThis failed with an exception:\r\n\r\n```\r\n>dronekit-sitl copter-3.2.1\r\nos: win, apm: copter, release: 3.2.1\r\nDownloading SITL from http://d3jdmgrrydviou.cloudfront.net/copter/sitl-win-v3.2.1.tar.gz\r\nExtracted.\r\nExecute: ['.\\\\ArduCopter.elf']\r\nStarting sketch 'ArduCopter'\r\nERROR: Floating point exception\r\nStarting SITL input\r\n```\r\n\r\nThis one seems to have buggered up paths:\r\n```\r\nC:\\Apps\\WinPython-64bit-2.7.10.2\\python-2.7.10.amd64>dronekit-sitl plane-3.3.0\r\nos: win, apm: plane, release: 3.3.0\r\nDownloading SITL from http://d3jdmgrrydviou.cloudfront.net/plane/sitl-win-v3.3.0.tar.gz\r\nExtracted.\r\nTraceback (most recent call last):\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\runpy.py\", line 162, in _run_module_as_main\r\n \"__main__\", fname, loader, pkg_name)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\runpy.py\", line 72, in _run_code\r\n exec code in run_globals\r\n File \"C:\\Apps\\WinPython-64bit-2.7.10.2\\python-2.7.10.amd64\\Scripts\\dronekit-sitl.exe\\__main__.py\", line 9, in \r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\site-packages\\dronekit\\sitl\\__init__.py\", line 306, in main\r\n sitl.launch(args, verbose=True, local=local)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\site-packages\\dronekit\\sitl\\__init__.py\", line 148, in launch\r\n elf = open(os.path.join(wd, args[0])).read()\r\nIOError: [Errno 2] No such file or directory: 'C:\\\\Apps\\\\WinPython-64bit-2.7.10.2\\\\settings\\\\.dronekit\\\\sitl\\\\plane-3.3.0\\\\.\\\\ArduPlane.elf'\r\n```\r\n\r\n\r\nThis one failed to download:\r\n```\r\n>dronekit-sitl solo-1.1.46\r\n\r\nos: win, apm: solo, release: 1.1.46\r\nDownloading SITL from http://d3jdmgrrydviou.cloudfront.net/solo/sitl-win-v1.1.46.tar.gz\r\nTraceback (most recent call last):\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\runpy.py\", line 162, in _run_module_as_main\r\n \"__main__\", fname, loader, pkg_name)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\runpy.py\", line 72, in _run_code\r\n exec code in run_globals\r\n File \"C:\\Apps\\WinPython-64bit-2.7.10.2\\python-2.7.10.amd64\\Scripts\\dronekit-sitl.exe\\__main__.py\", line 9, in \r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\site-packages\\dronekit\\sitl\\__init__.py\", line 304, in main\r\n sitl.download(target, verbose=True)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\site-packages\\dronekit\\sitl\\__init__.py\", line 119, in download\r\n return download(self.system, self.version, target, verbose=verbose)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\site-packages\\dronekit\\sitl\\__init__.py\", line 97, in download\r\n testfile.retrieve(sitl_file, sitl_target + '/sitl.tar.gz')\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\urllib.py\", line 245, in retrieve\r\n fp = self.open(url, data)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\urllib.py\", line 213, in open\r\n return getattr(self, name)(url)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\urllib.py\", line 364, in open_http\r\n return self.http_error(url, fp, errcode, errmsg, headers)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\urllib.py\", line 381, in http_error\r\n return self.http_error_default(url, fp, errcode, errmsg, headers)\r\n File \"c:\\apps\\winpython-64bit-2.7.10.2\\python-2.7.10.amd64\\lib\\urllib.py\", line 386, in http_error_default\r\n raise IOError, ('http error', errcode, errmsg, headers)\r\nIOError: ('http error', 404, 'Not Found', )\r\n```\r\n\r\n\r\n\r\n\r\n", + "score": 6.0475206 + }, + { + "url": "https://api.github.com/repos/python-pillow/Pillow/issues/1462", + "repository_url": "https://api.github.com/repos/python-pillow/Pillow", + "labels_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1462/labels{/name}", + "comments_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1462/comments", + "events_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1462/events", + "html_url": "https://github.com/python-pillow/Pillow/issues/1462", + "id": 109579585, + "number": 1462, + "title": "TypeError in PngImagePlugin._save", + "user": { + "login": "codewarrior0", + "id": 307683, + "avatar_url": "https://avatars.githubusercontent.com/u/307683?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/codewarrior0", + "html_url": "https://github.com/codewarrior0", + "followers_url": "https://api.github.com/users/codewarrior0/followers", + "following_url": "https://api.github.com/users/codewarrior0/following{/other_user}", + "gists_url": "https://api.github.com/users/codewarrior0/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codewarrior0/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codewarrior0/subscriptions", + "organizations_url": "https://api.github.com/users/codewarrior0/orgs", + "repos_url": "https://api.github.com/users/codewarrior0/repos", + "events_url": "https://api.github.com/users/codewarrior0/events{/privacy}", + "received_events_url": "https://api.github.com/users/codewarrior0/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/python-pillow/Pillow/labels/Bug", + "name": "Bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 22, + "created_at": "2015-10-02T22:00:02Z", + "updated_at": "2016-04-19T20:08:43Z", + "closed_at": null, + "body": "Using Python 2.7.9 for 64-bit Windows. Pillow 3.0.0 installed via `pip install pillow`. Script file:\r\n\r\n```\r\nimport os\r\n\r\nimport PIL.Image\r\nbasedir = \"../data/PIL_Images\"\r\nim = PIL.Image.open(os.path.join(basedir, \"tinysample.tiff\"))\r\nim.save(os.path.join(basedir, \"tinysample.png\"))\r\n```\r\n\r\nError traceback:\r\n```\r\nTraceback (most recent call last):\r\n File \"pyi_lib_PIL_img_conversion.py\", line 17, in \r\n im.save(os.path.join(basedir, \"tinysample.png\"))\r\n File \"c:\\Users\\Rio\\Documents\\src\\pyinst1328\\.env27\\lib\\site-packages\\PIL\\Image.py\", line 1665, in save\r\n save_handler(self, fp, filename)\r\n File \"c:\\Users\\Rio\\Documents\\src\\pyinst1328\\.env27\\lib\\site-packages\\PIL\\PngImagePlugin.py\", line 757, in _save\r\n data = name + b\"\\0\\0\" + zlib.compress(im.info[\"icc_profile\"])\r\nTypeError: must be string or read-only buffer, not tuple\r\n```\r\n\r\n[Input image file is here.](https://www.dropbox.com/s/4o6zm09was4hf18/tinysample.tiff?dl=0)\r\n\r\nThis code previously worked with `pillow==2.9.0` installed.\r\n\r\nWith `pillow==3.0.0`, `im.info[\"icc_profile\"]` is a tuple of length 1 containing a single bytestring. With `pillow==2.9.0`, `im.info[\"icc_profile\"]` is a bytestring.", + "score": 0.7864037 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/11238", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/11238/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/11238/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/11238/events", + "html_url": "https://github.com/pydata/pandas/issues/11238", + "id": 109705560, + "number": 11238, + "title": "column-specific min_itemsize doesn't work with append_to_multiple ", + "user": { + "login": "BrenBarn", + "id": 1439047, + "avatar_url": "https://avatars.githubusercontent.com/u/1439047?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/BrenBarn", + "html_url": "https://github.com/BrenBarn", + "followers_url": "https://api.github.com/users/BrenBarn/followers", + "following_url": "https://api.github.com/users/BrenBarn/following{/other_user}", + "gists_url": "https://api.github.com/users/BrenBarn/gists{/gist_id}", + "starred_url": "https://api.github.com/users/BrenBarn/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/BrenBarn/subscriptions", + "organizations_url": "https://api.github.com/users/BrenBarn/orgs", + "repos_url": "https://api.github.com/users/BrenBarn/repos", + "events_url": "https://api.github.com/users/BrenBarn/events{/privacy}", + "received_events_url": "https://api.github.com/users/BrenBarn/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Novice", + "name": "Difficulty Novice", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/IO%20HDF5", + "name": "IO HDF5", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 7, + "created_at": "2015-10-04T21:27:09Z", + "updated_at": "2015-10-05T20:27:07Z", + "closed_at": null, + "body": "The `HDFStore.append_to_multiple` passes on its entire `min_itemsize` argument to every sub-append. Because not all columns are in every append, it fails when it tries to set a min_itemsize for a certain column when appending to a table that doesn't use that column. \r\n\r\nSimple example:\r\n\r\n```\r\n>>> store.append_to_multiple({\r\n... 'index': [\"IX\"],\r\n... 'nums': [\"Num\", \"BigNum\", \"RandNum\"],\r\n... \"strs\": [\"Str\", \"LongStr\"]\r\n... }, d.iloc[[0]], 'index', min_itemsize={\"Str\": 10, \"LongStr\": 100})\r\nTraceback (most recent call last):\r\n File \"\", line 5, in \r\n }, d.iloc[[0]], 'index', min_itemsize={\"Str\": 10, \"LongStr\": 100})\r\n File \"c:\\users\\brenbarn\\documents\\python\\extensions\\pandas\\pandas\\io\\pytables.py\", line 1002, in append_to_multiple\r\n self.append(k, val, data_columns=dc, **kwargs)\r\n File \"c:\\users\\brenbarn\\documents\\python\\extensions\\pandas\\pandas\\io\\pytables.py\", line 920, in append\r\n **kwargs)\r\n File \"c:\\users\\brenbarn\\documents\\python\\extensions\\pandas\\pandas\\io\\pytables.py\", line 1265, in _write_to_group\r\n s.write(obj=value, append=append, complib=complib, **kwargs)\r\n File \"c:\\users\\brenbarn\\documents\\python\\extensions\\pandas\\pandas\\io\\pytables.py\", line 3773, in write\r\n **kwargs)\r\n File \"c:\\users\\brenbarn\\documents\\python\\extensions\\pandas\\pandas\\io\\pytables.py\", line 3460, in create_axes\r\n self.validate_min_itemsize(min_itemsize)\r\n File \"c:\\users\\brenbarn\\documents\\python\\extensions\\pandas\\pandas\\io\\pytables.py\", line 3101, in validate_min_itemsize\r\n \"data_column\" % k)\r\nValueError: min_itemsize has the key [LongStr] which is not an axis or data_column\r\n```\r\n\r\nThis apparently means that you can't use `min_itemsize` without manually creating and appending to each separate table beforehand, which is the kind of thing `append_to_multiple` is supposed to shield you from.\r\n\r\nI think `append_to_multiple` should special-case `min_itemsize` and split it into separate dicts for each sub-append. I don't know if there are other potential kwargs that need to be \"allocated\" separately to sub-appends, but if there are it might be good to split them too.", + "score": 0.40817347 + }, + { + "url": "https://api.github.com/repos/ckoepp/TwitterSearch/issues/27", + "repository_url": "https://api.github.com/repos/ckoepp/TwitterSearch", + "labels_url": "https://api.github.com/repos/ckoepp/TwitterSearch/issues/27/labels{/name}", + "comments_url": "https://api.github.com/repos/ckoepp/TwitterSearch/issues/27/comments", + "events_url": "https://api.github.com/repos/ckoepp/TwitterSearch/issues/27/events", + "html_url": "https://github.com/ckoepp/TwitterSearch/issues/27", + "id": 111019745, + "number": 27, + "title": "Program randomly freezes", + "user": { + "login": "DoisKoh", + "id": 5701052, + "avatar_url": "https://avatars.githubusercontent.com/u/5701052?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/DoisKoh", + "html_url": "https://github.com/DoisKoh", + "followers_url": "https://api.github.com/users/DoisKoh/followers", + "following_url": "https://api.github.com/users/DoisKoh/following{/other_user}", + "gists_url": "https://api.github.com/users/DoisKoh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DoisKoh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DoisKoh/subscriptions", + "organizations_url": "https://api.github.com/users/DoisKoh/orgs", + "repos_url": "https://api.github.com/users/DoisKoh/repos", + "events_url": "https://api.github.com/users/DoisKoh/events{/privacy}", + "received_events_url": "https://api.github.com/users/DoisKoh/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/ckoepp/TwitterSearch/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 6, + "created_at": "2015-10-12T17:26:13Z", + "updated_at": "2016-06-02T09:42:37Z", + "closed_at": null, + "body": "Hello... I'm using your library and I don't know why but my program randomly freezes sometimes. My program is pretty simple and is pretty much just copying the code sample you provide @https://twittersearch.readthedocs.org/en/latest/index.html (actually, your code sample was also freezing when I tried it).\r\n\r\nCould it have to do with the version of python I'm using? (2.7.9)\r\nI installed TwitterSearch through pip. I hope its not some deadlock issue.\r\n\r\nHere's what I've been running:\r\n\r\n```python\r\nfrom TwitterSearch import *\r\nfrom time import sleep\r\ntry:\r\n tso = TwitterSearchOrder() # create a TwitterSearchOrder object\r\n tso.set_keywords(['#vr', '-RT']) # let's define all words we would like to have a look for\r\n tso.set_language('en') # hell no German, I want English!\r\n tso.set_include_entities(False) # and don't give us all those entity information\r\n\r\n # it's about time to create a TwitterSearch object with our secret tokens\r\n ts = TwitterSearch(\r\n consumer_key = 'xxxx',\r\n consumer_secret = 'xxxx',\r\n access_token = 'xxxx',\r\n access_token_secret = 'xxxx'\r\n )\r\n\r\n # open file for writing\r\n text_file = open(\"#vrtest.txt\", \"w\")\r\n\r\n # check when to stop\r\n iterations = 0\r\n max_tweets = 100000\r\n\r\n # callback fucntion used to check if we need to pause the program\r\n def my_callback_closure(current_ts_instance): # accepts ONE argument: an instance of TwitterSearch\r\n queries, tweets_seen = current_ts_instance.get_statistics()\r\n \r\n if queries > 0 and (queries % 2) == 0: # trigger delay every other query\r\n print(\"\\nQueries: \" + str(queries) + \" now sleeping, 1 minute.\\n\");\r\n sleep(60) # sleep for 60 seconds\r\n\r\n # this is where the fun actually starts :)\r\n for tweet in ts.search_tweets_iterable(tso, callback=my_callback_closure):\r\n \r\n current_line = \"%s\" % ( tweet['text'] )\r\n \r\n iterations = iterations + 1\r\n print( \"i: \" + str(iterations) + \" - \" + tweet['user']['screen_name'] + \" tweeted: \" + current_line )\r\n \r\n text_file.write(current_line.encode('utf-8', 'ignore') + \"\\n\")\r\n\r\n # wait 1 second every 10 tweets\r\n if (iterations % 10 == 0):\r\n print(\"\\nSleeping 1 second.\\n\")\r\n sleep(1)\r\n \r\n if (iterations >= max_tweets):\r\n break\r\n\r\nexcept TwitterSearchException as e: # take care of all those ugly errors if there are some\r\n print(e)\r\n\r\nfinally:\r\n # close file\r\n text_file.close()\r\n```\r\n", + "score": 0.678968 + }, + { + "url": "https://api.github.com/repos/bibanon/BASC-Archiver/issues/24", + "repository_url": "https://api.github.com/repos/bibanon/BASC-Archiver", + "labels_url": "https://api.github.com/repos/bibanon/BASC-Archiver/issues/24/labels{/name}", + "comments_url": "https://api.github.com/repos/bibanon/BASC-Archiver/issues/24/comments", + "events_url": "https://api.github.com/repos/bibanon/BASC-Archiver/issues/24/events", + "html_url": "https://github.com/bibanon/BASC-Archiver/issues/24", + "id": 112495066, + "number": 24, + "title": "0.9.0: --runonce doesn't work.", + "user": { + "login": "HASJ", + "id": 9345660, + "avatar_url": "https://avatars.githubusercontent.com/u/9345660?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/HASJ", + "html_url": "https://github.com/HASJ", + "followers_url": "https://api.github.com/users/HASJ/followers", + "following_url": "https://api.github.com/users/HASJ/following{/other_user}", + "gists_url": "https://api.github.com/users/HASJ/gists{/gist_id}", + "starred_url": "https://api.github.com/users/HASJ/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/HASJ/subscriptions", + "organizations_url": "https://api.github.com/users/HASJ/orgs", + "repos_url": "https://api.github.com/users/HASJ/repos", + "events_url": "https://api.github.com/users/HASJ/events{/privacy}", + "received_events_url": "https://api.github.com/users/HASJ/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/bibanon/BASC-Archiver/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/bibanon/BASC-Archiver/labels/confirm%20fixed", + "name": "confirm fixed", + "color": "d4c5f9" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "DanielOaks", + "id": 251281, + "avatar_url": "https://avatars.githubusercontent.com/u/251281?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/DanielOaks", + "html_url": "https://github.com/DanielOaks", + "followers_url": "https://api.github.com/users/DanielOaks/followers", + "following_url": "https://api.github.com/users/DanielOaks/following{/other_user}", + "gists_url": "https://api.github.com/users/DanielOaks/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DanielOaks/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DanielOaks/subscriptions", + "organizations_url": "https://api.github.com/users/DanielOaks/orgs", + "repos_url": "https://api.github.com/users/DanielOaks/repos", + "events_url": "https://api.github.com/users/DanielOaks/events{/privacy}", + "received_events_url": "https://api.github.com/users/DanielOaks/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 9, + "created_at": "2015-10-21T01:49:26Z", + "updated_at": "2016-01-24T00:56:31Z", + "closed_at": null, + "body": "Script just keeps running. Windows version.", + "score": 1.2674693 + }, + { + "url": "https://api.github.com/repos/tartley/colorama/issues/77", + "repository_url": "https://api.github.com/repos/tartley/colorama", + "labels_url": "https://api.github.com/repos/tartley/colorama/issues/77/labels{/name}", + "comments_url": "https://api.github.com/repos/tartley/colorama/issues/77/comments", + "events_url": "https://api.github.com/repos/tartley/colorama/issues/77/events", + "html_url": "https://github.com/tartley/colorama/issues/77", + "id": 112779309, + "number": 77, + "title": "Colorama master doesn't work with The Fuck; 0.3.3 partly works; 0.3.2 works", + "user": { + "login": "hugovk", + "id": 1324225, + "avatar_url": "https://avatars.githubusercontent.com/u/1324225?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hugovk", + "html_url": "https://github.com/hugovk", + "followers_url": "https://api.github.com/users/hugovk/followers", + "following_url": "https://api.github.com/users/hugovk/following{/other_user}", + "gists_url": "https://api.github.com/users/hugovk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hugovk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hugovk/subscriptions", + "organizations_url": "https://api.github.com/users/hugovk/orgs", + "repos_url": "https://api.github.com/users/hugovk/repos", + "events_url": "https://api.github.com/users/hugovk/events{/privacy}", + "received_events_url": "https://api.github.com/users/hugovk/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/tartley/colorama/labels/bug", + "name": "bug", + "color": "e11d21" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 12, + "created_at": "2015-10-22T11:05:18Z", + "updated_at": "2016-05-31T08:03:39Z", + "closed_at": null, + "body": "Windows 7, Python 2.7, Git BASH.\r\n\r\n * [The Fuck](https://github.com/nvbn/thefuck) works properly with Colorama 0.3.2.\r\n\r\n * The Fuck works with Colorama 0.3.3 but the text isn't coloured and it prints characters like `←[1m`.\r\n\r\n * The Fuck doesn't work with Colorama master branch and the text isn't coloured and it prints characters like `←[1m`.\r\n\r\n---\r\n\r\nInstall latest dev version:\r\n=\r\n\r\n```bash\r\n~/github/colorama (master)\r\n$ python setup.py develop\r\nrunning develop\r\nrunning egg_info\r\nwriting colorama.egg-info\\PKG-INFO\r\nwriting top-level names to colorama.egg-info\\top_level.txt\r\nwriting dependency_links to colorama.egg-info\\dependency_links.txt\r\nreading manifest file 'colorama.egg-info\\SOURCES.txt'\r\nreading manifest template 'MANIFEST.in'\r\nwriting manifest file 'colorama.egg-info\\SOURCES.txt'\r\nrunning build_ext\r\nCreating c:\\python27\\lib\\site-packages\\colorama.egg-link (link to .)\r\nAdding colorama 0.3.3 to easy-install.pth file\r\n\r\nInstalled c:\\users\\hugovk\\github\\colorama\r\nProcessing dependencies for colorama==0.3.3\r\nFinished processing dependencies for colorama==0.3.3\r\n```\r\n\r\nCreate a new branch, try and push it, then use [The Fuck](https://github.com/nvbn/thefuck) to push it properly:\r\n\r\n```bash\r\n~/github/colorama (master)\r\n$ git checkout -b test_branch1\r\nSwitched to a new branch 'test_branch1'\r\n\r\n~/github/colorama (test_branch1)\r\n$ git push\r\nfatal: The current branch test_branch1 has no upstream branch.\r\nTo push the current branch and set the remote as upstream, use\r\n\r\n git push --set-upstream origin test_branch1\r\n\r\n\r\n~/github/colorama (test_branch1)\r\n$ fuck\r\n←[1mgit push --set-upstream origin test_branch1←[0m\r\nfatal: remote part of refspec is not a valid name in\r\nUnexpected end of command stream\r\n```\r\nText was monochrome, command didn't work.\r\n\r\n---\r\n\r\nTry the same thing with Colorama 0.3.2:\r\n=\r\n\r\n```bash\r\n~/github/colorama (test_branch1)\r\n$ pip install colorama==0.3.2\r\nCollecting colorama==0.3.2\r\n Using cached colorama-0.3.2.tar.gz\r\nInstalling collected packages: colorama\r\n Found existing installation: colorama 0.3.3\r\n Uninstalling colorama-0.3.3:\r\n Successfully uninstalled colorama-0.3.3\r\n Running setup.py install for colorama\r\nSuccessfully installed colorama-0.3.3\r\n\r\n~/github/colorama (test_branch1)\r\n$ git push\r\nfatal: The current branch test_branch1 has no upstream branch.\r\nTo push the current branch and set the remote as upstream, use\r\n\r\n git push --set-upstream origin test_branch1\r\n\r\n\r\n~/github/colorama (test_branch1)\r\n$ fuck\r\ngit push --set-upstream origin test_branch1\r\nTotal 0 (delta 0), reused 0 (delta 0)\r\nTo https://github.com/hugovk/colorama\r\n * [new branch] test_branch1 -> test_branch1\r\nBranch test_branch1 set up to track remote branch test_branch1 from origin.\r\n```\r\n\r\nThe command worked, and those last five lines were coloured light grey.\r\n\r\n---\r\n\r\nAnd with Colorama 0.3.3:\r\n=\r\n\r\n```bash\r\n~/github/colorama (test_branch1)\r\n$ pip install colorama==0.3.3\r\nCollecting colorama==0.3.3\r\n Using cached colorama-0.3.3.tar.gz\r\nInstalling collected packages: colorama\r\n Found existing installation: colorama 0.3.2\r\n Uninstalling colorama-0.3.2:\r\n Successfully uninstalled colorama-0.3.2\r\n Running setup.py install for colorama\r\nSuccessfully installed colorama-0.3.3\r\n\r\n~/github/colorama (test_branch1)\r\n$ git checkout -b test_branch2\r\nSwitched to a new branch 'test_branch2'\r\n\r\n~/github/colorama (test_branch2)\r\n$ git push\r\nfatal: The current branch test_branch2 has no upstream branch.\r\nTo push the current branch and set the remote as upstream, use\r\n\r\n git push --set-upstream origin test_branch2\r\n\r\n\r\n~/github/colorama (test_branch2)\r\n$ fuck\r\n←[1mgit push --set-upstream origin test_branch2←[0m\r\nTotal 0 (delta 0), reused 0 (delta 0)\r\nTo https://github.com/hugovk/colorama\r\n * [new branch] test_branch2 -> test_branch2\r\nBranch test_branch2 set up to track remote branch test_branch2 from origin.\r\n```\r\n\r\nThe command worked, but the text is monochrome and shows `←[1m` type characters.\r\n\r\n---\r\n\r\nNote the above was with thefuck==1.45, but similar results are had with latest thefuck==3.1.\r\n\r\n", + "score": 0.77801967 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/3215", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/3215/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/3215/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/3215/events", + "html_url": "https://github.com/pypa/pip/issues/3215", + "id": 113997545, + "number": 3215, + "title": "HTTPS certificate verification fails if using proxy pip 7.1.2", + "user": { + "login": "mayukuse24", + "id": 9818793, + "avatar_url": "https://avatars.githubusercontent.com/u/9818793?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mayukuse24", + "html_url": "https://github.com/mayukuse24", + "followers_url": "https://api.github.com/users/mayukuse24/followers", + "following_url": "https://api.github.com/users/mayukuse24/following{/other_user}", + "gists_url": "https://api.github.com/users/mayukuse24/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mayukuse24/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mayukuse24/subscriptions", + "organizations_url": "https://api.github.com/users/mayukuse24/orgs", + "repos_url": "https://api.github.com/users/mayukuse24/repos", + "events_url": "https://api.github.com/users/mayukuse24/events{/privacy}", + "received_events_url": "https://api.github.com/users/mayukuse24/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/proxy", + "name": "proxy", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 42, + "created_at": "2015-10-29T07:48:58Z", + "updated_at": "2016-05-27T19:51:48Z", + "closed_at": null, + "body": "When using a proxy (CONNECT via plain HTTP), pip gets the HTTPS certificate verification wrong. Rather than verifying that the certificate received through the tunnel matches the host at the tunnel's end, it compares it to the proxy itself:\r\n\r\nGetting page https://pypi.python.org/simple/plog/\r\n Could not fetch URL https://pypi.python.org/simple/plog/: connection error: hostname 'proxy.iiit.ac.in' doesn't match either of 'www.python.org', 'python.org', 'pypi.python.org', 'docs.python.org', 'testpypi.python.org', 'bugs.python.org', 'wiki.python.org', 'hg.python.org', 'mail.python.org', 'packaging.python.org', 'pythonhosted.org', 'www.pythonhosted.org', 'test.pythonhosted.org', 'us.pycon.org', 'id.python.org'\r\n\r\nAlthough this issue was closed at https://github.com/pypa/pip/issues/1905 for pip 1.5.6 . It still shows up for version 7.1.2", + "score": 5.2823005 + }, + { + "url": "https://api.github.com/repos/BhallaLab/moose-gui/issues/4", + "repository_url": "https://api.github.com/repos/BhallaLab/moose-gui", + "labels_url": "https://api.github.com/repos/BhallaLab/moose-gui/issues/4/labels{/name}", + "comments_url": "https://api.github.com/repos/BhallaLab/moose-gui/issues/4/comments", + "events_url": "https://api.github.com/repos/BhallaLab/moose-gui/issues/4/events", + "html_url": "https://github.com/BhallaLab/moose-gui/issues/4", + "id": 114535115, + "number": 4, + "title": "dependency `python-suds` does not work on MacOSX ", + "user": { + "login": "dilawar", + "id": 895681, + "avatar_url": "https://avatars.githubusercontent.com/u/895681?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dilawar", + "html_url": "https://github.com/dilawar", + "followers_url": "https://api.github.com/users/dilawar/followers", + "following_url": "https://api.github.com/users/dilawar/following{/other_user}", + "gists_url": "https://api.github.com/users/dilawar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dilawar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dilawar/subscriptions", + "organizations_url": "https://api.github.com/users/dilawar/orgs", + "repos_url": "https://api.github.com/users/dilawar/repos", + "events_url": "https://api.github.com/users/dilawar/events{/privacy}", + "received_events_url": "https://api.github.com/users/dilawar/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/BhallaLab/moose-gui/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/BhallaLab/moose-gui/labels/status:in-progress", + "name": "status:in-progress", + "color": "f7c6c7" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "hrani", + "id": 11624899, + "avatar_url": "https://avatars.githubusercontent.com/u/11624899?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/hrani", + "html_url": "https://github.com/hrani", + "followers_url": "https://api.github.com/users/hrani/followers", + "following_url": "https://api.github.com/users/hrani/following{/other_user}", + "gists_url": "https://api.github.com/users/hrani/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hrani/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hrani/subscriptions", + "organizations_url": "https://api.github.com/users/hrani/orgs", + "repos_url": "https://api.github.com/users/hrani/repos", + "events_url": "https://api.github.com/users/hrani/events{/privacy}", + "received_events_url": "https://api.github.com/users/hrani/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/BhallaLab/moose-gui/milestones/1", + "html_url": "https://github.com/BhallaLab/moose-gui/milestones/ghevar_3.0.2", + "labels_url": "https://api.github.com/repos/BhallaLab/moose-gui/milestones/1/labels", + "id": 1388750, + "number": 1, + "title": "ghevar_3.0.2", + "description": "Release 3.0.2. Code name: ghevar", + "creator": { + "login": "dilawar", + "id": 895681, + "avatar_url": "https://avatars.githubusercontent.com/u/895681?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/dilawar", + "html_url": "https://github.com/dilawar", + "followers_url": "https://api.github.com/users/dilawar/followers", + "following_url": "https://api.github.com/users/dilawar/following{/other_user}", + "gists_url": "https://api.github.com/users/dilawar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dilawar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dilawar/subscriptions", + "organizations_url": "https://api.github.com/users/dilawar/orgs", + "repos_url": "https://api.github.com/users/dilawar/repos", + "events_url": "https://api.github.com/users/dilawar/events{/privacy}", + "received_events_url": "https://api.github.com/users/dilawar/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 1, + "closed_issues": 0, + "state": "open", + "created_at": "2015-11-02T12:53:35Z", + "updated_at": "2015-11-30T10:05:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 12, + "created_at": "2015-11-02T06:35:17Z", + "updated_at": "2015-11-30T10:50:56Z", + "closed_at": null, + "body": "I've install suds using pip yet the moosegui does not launch: (On MacOSX).\r\n\r\n~~~\r\nFile \"/opt/local/lib/moose/gui/biomodelsclient.py\", line 49, in \r\n from suds.client import Client\r\nImportError: No module named suds.client\r\n~~~\r\n\r\nThis is probably related to this http://stackoverflow.com/questions/14973852/suds-install-error-no-module-named-client\r\n\r\n/cc @hrani @subhacom @aviralg ", + "score": 1.2651639 + }, + { + "url": "https://api.github.com/repos/xonsh/xonsh/issues/460", + "repository_url": "https://api.github.com/repos/xonsh/xonsh", + "labels_url": "https://api.github.com/repos/xonsh/xonsh/issues/460/labels{/name}", + "comments_url": "https://api.github.com/repos/xonsh/xonsh/issues/460/comments", + "events_url": "https://api.github.com/repos/xonsh/xonsh/issues/460/events", + "html_url": "https://github.com/xonsh/xonsh/issues/460", + "id": 114540132, + "number": 460, + "title": "“Failed building wheel for xonsh” error on Windows", + "user": { + "login": "uranusjr", + "id": 605277, + "avatar_url": "https://avatars.githubusercontent.com/u/605277?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/uranusjr", + "html_url": "https://github.com/uranusjr", + "followers_url": "https://api.github.com/users/uranusjr/followers", + "following_url": "https://api.github.com/users/uranusjr/following{/other_user}", + "gists_url": "https://api.github.com/users/uranusjr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/uranusjr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/uranusjr/subscriptions", + "organizations_url": "https://api.github.com/users/uranusjr/orgs", + "repos_url": "https://api.github.com/users/uranusjr/repos", + "events_url": "https://api.github.com/users/uranusjr/events{/privacy}", + "received_events_url": "https://api.github.com/users/uranusjr/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/xonsh/xonsh/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/xonsh/xonsh/milestones/4", + "html_url": "https://github.com/xonsh/xonsh/milestones/v0.4.0", + "labels_url": "https://api.github.com/repos/xonsh/xonsh/milestones/4/labels", + "id": 1779851, + "number": 4, + "title": "v0.4.0", + "description": "", + "creator": { + "login": "scopatz", + "id": 320553, + "avatar_url": "https://avatars.githubusercontent.com/u/320553?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/scopatz", + "html_url": "https://github.com/scopatz", + "followers_url": "https://api.github.com/users/scopatz/followers", + "following_url": "https://api.github.com/users/scopatz/following{/other_user}", + "gists_url": "https://api.github.com/users/scopatz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/scopatz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/scopatz/subscriptions", + "organizations_url": "https://api.github.com/users/scopatz/orgs", + "repos_url": "https://api.github.com/users/scopatz/repos", + "events_url": "https://api.github.com/users/scopatz/events{/privacy}", + "received_events_url": "https://api.github.com/users/scopatz/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 181, + "closed_issues": 167, + "state": "open", + "created_at": "2016-05-20T22:54:44Z", + "updated_at": "2016-06-21T20:30:50Z", + "due_on": "2016-06-30T04:00:00Z", + "closed_at": null + }, + "comments": 8, + "created_at": "2015-11-02T07:17:39Z", + "updated_at": "2016-06-05T18:57:09Z", + "closed_at": null, + "body": "Log below:\r\n\r\n~~~\r\nC:\\Users\\uranusjr\\Documents\\programming\\pepsi\\pepsi>pip install xonsh\r\nCollecting xonsh\r\n Downloading xonsh-0.2.2.tar.gz (158kB)\r\n 100% |████████████████████████████████| 159kB 655kB/s\r\nCollecting ply (from xonsh)\r\n Downloading ply-3.8.tar.gz (157kB)\r\n 100% |████████████████████████████████| 159kB 873kB/s\r\nBuilding wheels for collected packages: xonsh, ply\r\n Running setup.py bdist_wheel for xonsh\r\n Complete output from command C:\\Python\\34\\python.exe -c \"import setuptools;__file__='C:\\\\Users\\\\uranusjr\\\\AppData\\\\Loc\r\nal\\\\Temp\\\\pip-build-j7y2_1iy\\\\xonsh\\\\setup.py';exec(compile(open(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec\r\n'))\" bdist_wheel -d C:\\Users\\uranusjr\\AppData\\Local\\Temp\\tmpiyapkapspip-wheel-:\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n UnicodeDecodeError: 'cp950' codec can't decode byte 0xe2 in position 2829: illegal multibyte sequence\r\n\r\n ----------------------------------------\r\n Failed building wheel for xonsh\r\n Running setup.py bdist_wheel for ply\r\n Stored in directory: C:\\Users\\uranusjr\\AppData\\Local\\pip\\Cache\\wheels\\d9\\34\\fe\\b9f5d00d8690911944b0c24811ed7f5fb2c5d89\r\nf9c4d6053c7\r\nSuccessfully built ply\r\nFailed to build xonsh\r\nInstalling collected packages: ply, xonsh\r\n Running setup.py install for xonsh\r\nSuccessfully installed ply-3.8 xonsh-0.2.2\r\n~~~\r\n\r\nI believe this is related to the content in the setup script (having seen this error numerous times myself), but didn’t look deep into this. The setup seems to complete, however, and I do get to import xonsh in Python. The prompt would be in gibberish, but I don’t think the two problems are related. (Currently looking into this one.) Edit: Seems that I missed the Windows Guide on the main page. Scratch the last part.", + "score": 3.9802055 + }, + { + "url": "https://api.github.com/repos/mila-udem/fuel/issues/267", + "repository_url": "https://api.github.com/repos/mila-udem/fuel", + "labels_url": "https://api.github.com/repos/mila-udem/fuel/issues/267/labels{/name}", + "comments_url": "https://api.github.com/repos/mila-udem/fuel/issues/267/comments", + "events_url": "https://api.github.com/repos/mila-udem/fuel/issues/267/events", + "html_url": "https://github.com/mila-udem/fuel/issues/267", + "id": 114691796, + "number": 267, + "title": "Install on windows failing w/ python35", + "user": { + "login": "aluo-x", + "id": 15619682, + "avatar_url": "https://avatars.githubusercontent.com/u/15619682?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/aluo-x", + "html_url": "https://github.com/aluo-x", + "followers_url": "https://api.github.com/users/aluo-x/followers", + "following_url": "https://api.github.com/users/aluo-x/following{/other_user}", + "gists_url": "https://api.github.com/users/aluo-x/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aluo-x/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aluo-x/subscriptions", + "organizations_url": "https://api.github.com/users/aluo-x/orgs", + "repos_url": "https://api.github.com/users/aluo-x/repos", + "events_url": "https://api.github.com/users/aluo-x/events{/privacy}", + "received_events_url": "https://api.github.com/users/aluo-x/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/mila-udem/fuel/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/mila-udem/fuel/labels/installation", + "name": "installation", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-11-02T21:49:52Z", + "updated_at": "2015-11-24T05:01:19Z", + "closed_at": null, + "body": "Using the pip install git command, it fails with the following output:\r\n```\r\nrunning install\r\nrunning bdist_egg\r\nrunning egg_info\r\ncreating fuel.egg-info\r\nwriting fuel.egg-info\\PKG-INFO\r\nwriting requirements to fuel.egg-info\\requires.txt\r\nwriting entry points to fuel.egg-info\\entry_points.txt\r\nwriting top-level names to fuel.egg-info\\top_level.txt\r\nwriting dependency_links to fuel.egg-info\\dependency_links.txt\r\nwriting manifest file 'fuel.egg-info\\SOURCES.txt'\r\nreading manifest file 'fuel.egg-info\\SOURCES.txt'\r\nwriting manifest file 'fuel.egg-info\\SOURCES.txt'\r\ninstalling library code to build\\bdist.win-amd64\\egg\r\nrunning install_lib\r\nrunning build_py\r\ncreating build\r\ncreating build\\lib.win-amd64-3.5\r\ncreating build\\lib.win-amd64-3.5\\doctests\r\ncopying doctests\\__init__.py -> build\\lib.win-amd64-3.5\\doctests\r\ncreating build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\config_parser.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\exceptions.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\iterator.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\schemes.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\server.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\streams.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\utils.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\version.py -> build\\lib.win-amd64-3.5\\fuel\r\ncopying fuel\\__init__.py -> build\\lib.win-amd64-3.5\\fuel\r\ncreating build\\lib.win-amd64-3.5\\fuel\\bin\r\ncopying fuel\\bin\\fuel_convert.py -> build\\lib.win-amd64-3.5\\fuel\\bin\r\ncopying fuel\\bin\\fuel_download.py -> build\\lib.win-amd64-3.5\\fuel\\bin\r\ncopying fuel\\bin\\fuel_info.py -> build\\lib.win-amd64-3.5\\fuel\\bin\r\ncopying fuel\\bin\\__init__.py -> build\\lib.win-amd64-3.5\\fuel\\bin\r\ncreating build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\adult.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\base.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\binarized_mnist.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\caltech101_silhouettes.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\cifar10.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\cifar100.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\iris.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\mnist.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\svhn.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncopying fuel\\converters\\__init__.py -> build\\lib.win-amd64-3.5\\fuel\\converters\r\ncreating build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\adult.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\base.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\billion.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\binarized_mnist.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\caltech101_silhouettes.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\cifar10.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\cifar100.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\hdf5.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\iris.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\mnist.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\svhn.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\text.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\toy.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncopying fuel\\datasets\\__init__.py -> build\\lib.win-amd64-3.5\\fuel\\datasets\r\ncreating build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\adult.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\base.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\binarized_mnist.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\caltech101_silhouettes.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\cifar10.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\cifar100.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\iris.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\mnist.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\svhn.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncopying fuel\\downloaders\\__init__.py -> build\\lib.win-amd64-3.5\\fuel\\downloaders\r\ncreating build\\lib.win-amd64-3.5\\fuel\\transformers\r\ncopying fuel\\transformers\\defaults.py -> build\\lib.win-amd64-3.5\\fuel\\transformers\r\ncopying fuel\\transformers\\image.py -> build\\lib.win-amd64-3.5\\fuel\\transformers\r\ncopying fuel\\transformers\\text.py -> build\\lib.win-amd64-3.5\\fuel\\transformers\r\ncopying fuel\\transformers\\__init__.py -> build\\lib.win-amd64-3.5\\fuel\\transformers\r\ncreating build\\lib.win-amd64-3.5\\tests\r\ncreating build\\lib.win-amd64-3.5\\tests\\transformers\r\ncopying tests\\transformers\\test_image.py -> build\\lib.win-amd64-3.5\\tests\\transformers\r\ncopying tests\\transformers\\test_transformers.py -> build\\lib.win-amd64-3.5\\tests\\transformers\r\ncopying tests\\transformers\\__init__.py -> build\\lib.win-amd64-3.5\\tests\\transformers\r\nrunning build_ext\r\nbuilding 'fuel.transformers._image' extension\r\nerror: [WinError 2] The system cannot find the file specified\r\n```", + "score": 3.4713938 + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/issues/459", + "repository_url": "https://api.github.com/repos/pypa/setuptools", + "labels_url": "https://api.github.com/repos/pypa/setuptools/issues/459/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/setuptools/issues/459/comments", + "events_url": "https://api.github.com/repos/pypa/setuptools/issues/459/events", + "html_url": "https://github.com/pypa/setuptools/issues/459", + "id": 144282183, + "number": 459, + "title": "Incorrect sys.argv[0] for generated console scripts on Windows", + "user": { + "login": "bb-migration", + "id": 18138808, + "avatar_url": "https://avatars.githubusercontent.com/u/18138808?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bb-migration", + "html_url": "https://github.com/bb-migration", + "followers_url": "https://api.github.com/users/bb-migration/followers", + "following_url": "https://api.github.com/users/bb-migration/following{/other_user}", + "gists_url": "https://api.github.com/users/bb-migration/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bb-migration/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bb-migration/subscriptions", + "organizations_url": "https://api.github.com/users/bb-migration/orgs", + "repos_url": "https://api.github.com/users/bb-migration/repos", + "events_url": "https://api.github.com/users/bb-migration/events{/privacy}", + "received_events_url": "https://api.github.com/users/bb-migration/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/bug", + "name": "bug", + "color": "ee0701" + }, + { + "url": "https://api.github.com/repos/pypa/setuptools/labels/minor", + "name": "minor", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 0, + "created_at": "2015-11-07T16:11:19Z", + "updated_at": "2016-03-29T14:31:16Z", + "closed_at": null, + "body": "Originally reported by: **pombredanne (Bitbucket: [pombredanne](http://bitbucket.org/pombredanne), GitHub: [pombredanne](http://github.com/pombredanne))**\n\n----------------------------------------\n\nThe code that generates entry point console script return an incorrect value for sys.argv[0] on windows:\nhttps://bitbucket.org/pypa/setuptools/src/4ce518784af886e6977fa2dbe58359d0fe161d0d/setuptools/command/easy_install.py?at=default&fileviewer=file-view-default#easy_install.py-2008\n\nEven if the script was called from the CLI as XXXX, sys.argv[0] will be XXXX-script.py\nIt should instead by XXXX.\n\npip handles this by fixing sys.argv[0] in the generated launcher script for wheels here https://github.com/pypa/pip/blob/1da0ea13f3f0ab789edd62012d09bf69be045f68/pip/wheel.py#L416\n\ndistlib fixes sys.argv[0] here in a similar way in the launcher script :\nhttps://bitbucket.org/pypa/distlib/src/6ada86eea2700f10edcd81f831139c6ae20edb74/distlib/scripts.py?at=default&fileviewer=file-view-default#scripts.py-55\n\nSetuptools does not and it should IMHO.\n\nSee also this issue: https://github.com/pypa/pip/issues/3233\n\n\nAnd where this was discovered: https://github.com/mitsuhiko/click/issues/365\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/pypa/setuptools/issue/459\n", + "score": 3.7618823 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/11679", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/11679/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/11679/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/11679/events", + "html_url": "https://github.com/pydata/pandas/issues/11679", + "id": 118394225, + "number": 11679, + "title": "error in in _convert_to_indexer while using .loc with tz-aware DateTimeIndex", + "user": { + "login": "lopezco", + "id": 6637618, + "avatar_url": "https://avatars.githubusercontent.com/u/6637618?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lopezco", + "html_url": "https://github.com/lopezco", + "followers_url": "https://api.github.com/users/lopezco/followers", + "following_url": "https://api.github.com/users/lopezco/following{/other_user}", + "gists_url": "https://api.github.com/users/lopezco/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lopezco/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lopezco/subscriptions", + "organizations_url": "https://api.github.com/users/lopezco/orgs", + "repos_url": "https://api.github.com/users/lopezco/repos", + "events_url": "https://api.github.com/users/lopezco/events{/privacy}", + "received_events_url": "https://api.github.com/users/lopezco/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Timezones", + "name": "Timezones", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/40", + "html_url": "https://github.com/pydata/pandas/milestones/0.18.2", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/40/labels", + "id": 1639795, + "number": 40, + "title": "0.18.2", + "description": "", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 183, + "closed_issues": 208, + "state": "open", + "created_at": "2016-03-11T21:24:45Z", + "updated_at": "2016-06-21T12:43:02Z", + "due_on": "2016-06-28T04:00:00Z", + "closed_at": null + }, + "comments": 6, + "created_at": "2015-11-23T14:37:50Z", + "updated_at": "2016-04-25T15:23:21Z", + "closed_at": null, + "body": "Hello,\r\n\r\nI encounter some problems using the data provided here: [data.txt](https://github.com/pydata/pandas/files/41644/data.txt)\r\n\r\nWhen I was trying to use **.loc** on my **DateTimeIndex**, I go t the following error\r\n``` python\r\nKeyError: \"['2015-03-01T02:00:00.000000000+0100'] not in index\"\r\n```\r\nNotice that the error occurs only if we have the DST changing time in the DateTimeIndex\r\n\r\nWhile debugging I've found that the error comes from the _convert_to_indexer method at: \r\n``` python\r\n# indexing.py\r\nmask = check == -1\r\nif mask.any():\r\n raise KeyError('%s not in index' % objarr[mask]) <------------------------------------\r\n```\r\nHere is the copy-paste example using the data on the .txt attached:\r\n``` python\r\ndata = pd.read_csv(\"data.txt\"), parse_dates={'time':['Date']})\r\ndata.set_index('time', inplace=True)\r\ndata.index = data.index.tz_localize('Europe/Paris', ambiguous='infer').tz_convert('UTC')\r\n\r\nfor i in range(1, len(data)):\r\n try:-aware \r\n data.loc[data.index[:i], 'value'] = -1\r\n except Exception as e:\r\n print i,e\r\n break\r\n\r\n```\r\n\r\nOther important fact: the error occurs for pandas version 0.17.0 and 0.17.1. However, I've managed to make it work with an older version of pandas (**0.16.2**) \r\n\r\nI hope this is explicit enough.\r\n\r\n**UPDATE**\r\n``` python\r\nIn[19]: pd.show_versions()\r\n\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 2.7.6.final.0\r\npython-bits: 64\r\nOS: Linux\r\nOS-release: 3.19.0-33-generic\r\nmachine: x86_64\r\nprocessor: x86_64\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: en_US.UTF-8\r\n\r\npandas: 0.17.1\r\nnose: 1.3.7\r\npip: 7.1.2\r\nsetuptools: 18.5\r\nCython: 0.23.4\r\nnumpy: 1.10.1\r\nscipy: 0.16.1\r\nstatsmodels: None\r\nIPython: 4.0.0\r\nsphinx: None\r\npatsy: None\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: None\r\ntables: None\r\nnumexpr: 2.4.6\r\nmatplotlib: 1.5.0\r\nopenpyxl: None\r\nxlrd: None\r\nxlwt: None\r\nxlsxwriter: None\r\nlxml: None\r\nbs4: None\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: None\r\npymysql: None\r\npsycopg2: None\r\nJinja2: None\r\n```", + "score": 0.6430466 + }, + { + "url": "https://api.github.com/repos/duniter/sakia/issues/284", + "repository_url": "https://api.github.com/repos/duniter/sakia", + "labels_url": "https://api.github.com/repos/duniter/sakia/issues/284/labels{/name}", + "comments_url": "https://api.github.com/repos/duniter/sakia/issues/284/comments", + "events_url": "https://api.github.com/repos/duniter/sakia/issues/284/events", + "html_url": "https://github.com/duniter/sakia/issues/284", + "id": 120968202, + "number": 284, + "title": "Fix appveyor build", + "user": { + "login": "Insoleet", + "id": 1170293, + "avatar_url": "https://avatars.githubusercontent.com/u/1170293?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Insoleet", + "html_url": "https://github.com/Insoleet", + "followers_url": "https://api.github.com/users/Insoleet/followers", + "following_url": "https://api.github.com/users/Insoleet/following{/other_user}", + "gists_url": "https://api.github.com/users/Insoleet/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Insoleet/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Insoleet/subscriptions", + "organizations_url": "https://api.github.com/users/Insoleet/orgs", + "repos_url": "https://api.github.com/users/Insoleet/repos", + "events_url": "https://api.github.com/users/Insoleet/events{/privacy}", + "received_events_url": "https://api.github.com/users/Insoleet/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/duniter/sakia/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/duniter/sakia/labels/enhancement", + "name": "enhancement", + "color": "84b6eb" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/duniter/sakia/milestones/9", + "html_url": "https://github.com/duniter/sakia/milestones/future", + "labels_url": "https://api.github.com/repos/duniter/sakia/milestones/9/labels", + "id": 1373119, + "number": 9, + "title": "future", + "description": null, + "creator": { + "login": "M5oul", + "id": 4758871, + "avatar_url": "https://avatars.githubusercontent.com/u/4758871?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/M5oul", + "html_url": "https://github.com/M5oul", + "followers_url": "https://api.github.com/users/M5oul/followers", + "following_url": "https://api.github.com/users/M5oul/following{/other_user}", + "gists_url": "https://api.github.com/users/M5oul/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M5oul/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M5oul/subscriptions", + "organizations_url": "https://api.github.com/users/M5oul/orgs", + "repos_url": "https://api.github.com/users/M5oul/repos", + "events_url": "https://api.github.com/users/M5oul/events{/privacy}", + "received_events_url": "https://api.github.com/users/M5oul/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 24, + "closed_issues": 1, + "state": "open", + "created_at": "2015-10-23T18:54:25Z", + "updated_at": "2016-05-12T19:35:05Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2015-12-08T09:30:05Z", + "updated_at": "2016-01-15T19:28:43Z", + "closed_at": null, + "body": "So with the migration to python 3.5, we broke a couple of things on appveyor : \r\n\r\n- No prebuild binary for pyqt 5.5.1 for python 3.5? It seems like we have to wait for PyQt 5.6. In the meantime, we are missing a conda package for PyQt5...\r\n- cx_freeze cannot be installed on windows via pip ( https://bitbucket.org/anthony_tuininga/cx_freeze/issues/56/missed-cxfreeze-postinstall-script-in )", + "score": 1.1817191 + }, + { + "url": "https://api.github.com/repos/python-pillow/Pillow/issues/1597", + "repository_url": "https://api.github.com/repos/python-pillow/Pillow", + "labels_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1597/labels{/name}", + "comments_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1597/comments", + "events_url": "https://api.github.com/repos/python-pillow/Pillow/issues/1597/events", + "html_url": "https://github.com/python-pillow/Pillow/issues/1597", + "id": 122312021, + "number": 1597, + "title": "Segmentation fault", + "user": { + "login": "playnet", + "id": 1932020, + "avatar_url": "https://avatars.githubusercontent.com/u/1932020?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/playnet", + "html_url": "https://github.com/playnet", + "followers_url": "https://api.github.com/users/playnet/followers", + "following_url": "https://api.github.com/users/playnet/following{/other_user}", + "gists_url": "https://api.github.com/users/playnet/gists{/gist_id}", + "starred_url": "https://api.github.com/users/playnet/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/playnet/subscriptions", + "organizations_url": "https://api.github.com/users/playnet/orgs", + "repos_url": "https://api.github.com/users/playnet/repos", + "events_url": "https://api.github.com/users/playnet/events{/privacy}", + "received_events_url": "https://api.github.com/users/playnet/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/python-pillow/Pillow/labels/Bug", + "name": "Bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/python-pillow/Pillow/labels/Tiff", + "name": "Tiff", + "color": "fef2c0" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 12, + "created_at": "2015-12-15T16:32:36Z", + "updated_at": "2015-12-30T15:01:56Z", + "closed_at": null, + "body": "\r\n[rdf.zip](https://github.com/python-pillow/Pillow/files/62856/rdf.zip)\r\ngithub don't eat .tif file, unzip it and\r\n\r\n```\r\nPython 2.7.6 (default, Jun 22 2015, 17:58:13) \r\n[GCC 4.8.2] on linux2\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n>>> import PIL.Image\r\n>>> filename=\"rdf.tif\"\r\n>>> img = PIL.Image.open(filename)\r\n>>> img.info\r\n{'resolution': (72.0, 72.0), 'compression': 'tiff_lzw'}\r\n>>> img.size\r\n(518, 556)\r\n>>> img.save(\"rdf.1.tif\", format='TIFF')\r\nSegmentation fault\r\n\r\n$ pip show Pillow\r\n---\r\nName: Pillow\r\nVersion: 3.0.0\r\nLocation: /usr/local/lib/python2.7/dist-packages\r\nRequires: \r\n\r\n$ dpkg -l|grep tiff\r\nii libtiff-tools 4.0.3-7ubuntu0.3 amd64 TIFF manipulation and conversion tools\r\nii libtiff4:amd64 3.9.7-2ubuntu1 amd64 Tag Image File Format (TIFF) library (old version)\r\nii libtiff5:amd64 4.0.3-7ubuntu0.3 amd64 Tag Image File Format (TIFF) library\r\nii libtiff5:i386 4.0.3-7ubuntu0.3 i386 Tag Image File Format (TIFF) library\r\nii libtiff5-dev:amd64 4.0.3-7ubuntu0.3 amd64 Tag Image File Format library (TIFF), development files\r\nii libtiffxx5:amd64 4.0.3-7ubuntu0.3 amd64 Tag Image File Format (TIFF) library -- C++ interface\r\n\r\n```\r\n\r\n```\r\nuname -a\r\nLinux playnet 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux\r\ncat /etc/lsb-release\r\nDISTRIB_ID=LinuxMint\r\nDISTRIB_RELEASE=17.2\r\nDISTRIB_CODENAME=rafaela\r\nDISTRIB_DESCRIPTION=\"Linux Mint 17.2 Rafaela\"\r\n```\r\n\r\nAnd\r\n```\r\nLinux build64 2.6.32-042stab111.12 #1 SMP Thu Sep 17 11:38:20 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux\r\n$cat /etc/redhat-release \r\nCentOS release 6.7 (Final)\r\n$python -V\r\nPython 2.6.6\r\n\r\n```\r\n", + "score": 0.5389216 + }, + { + "url": "https://api.github.com/repos/FCS-analysis/PyCorrFit/issues/147", + "repository_url": "https://api.github.com/repos/FCS-analysis/PyCorrFit", + "labels_url": "https://api.github.com/repos/FCS-analysis/PyCorrFit/issues/147/labels{/name}", + "comments_url": "https://api.github.com/repos/FCS-analysis/PyCorrFit/issues/147/comments", + "events_url": "https://api.github.com/repos/FCS-analysis/PyCorrFit/issues/147/events", + "html_url": "https://github.com/FCS-analysis/PyCorrFit/issues/147", + "id": 122768994, + "number": 147, + "title": "MacOSx builds fail to open data since release 0.9.5", + "user": { + "login": "weidemann", + "id": 5793720, + "avatar_url": "https://avatars.githubusercontent.com/u/5793720?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/weidemann", + "html_url": "https://github.com/weidemann", + "followers_url": "https://api.github.com/users/weidemann/followers", + "following_url": "https://api.github.com/users/weidemann/following{/other_user}", + "gists_url": "https://api.github.com/users/weidemann/gists{/gist_id}", + "starred_url": "https://api.github.com/users/weidemann/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/weidemann/subscriptions", + "organizations_url": "https://api.github.com/users/weidemann/orgs", + "repos_url": "https://api.github.com/users/weidemann/repos", + "events_url": "https://api.github.com/users/weidemann/events{/privacy}", + "received_events_url": "https://api.github.com/users/weidemann/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/FCS-analysis/PyCorrFit/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/FCS-analysis/PyCorrFit/labels/Mac", + "name": "Mac", + "color": "c7def8" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2015-12-17T16:22:35Z", + "updated_at": "2016-05-30T15:33:26Z", + "closed_at": null, + "body": "tested PyCorrFit latest release 0.9.5\r\n\r\nDoes not allow file loading under MacOS.\r\nDoes not allow to cancel during the infinite loading time.\r\n\r\nCan load the files but crashes when using Win_64 bit version.", + "score": 0.3749455 + }, + { + "url": "https://api.github.com/repos/F483/btctxstore/issues/17", + "repository_url": "https://api.github.com/repos/F483/btctxstore", + "labels_url": "https://api.github.com/repos/F483/btctxstore/issues/17/labels{/name}", + "comments_url": "https://api.github.com/repos/F483/btctxstore/issues/17/comments", + "events_url": "https://api.github.com/repos/F483/btctxstore/issues/17/events", + "html_url": "https://github.com/F483/btctxstore/issues/17", + "id": 123678009, + "number": 17, + "title": "Signing encoding error.", + "user": { + "login": "F483", + "id": 977605, + "avatar_url": "https://avatars.githubusercontent.com/u/977605?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/F483", + "html_url": "https://github.com/F483", + "followers_url": "https://api.github.com/users/F483/followers", + "following_url": "https://api.github.com/users/F483/following{/other_user}", + "gists_url": "https://api.github.com/users/F483/gists{/gist_id}", + "starred_url": "https://api.github.com/users/F483/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/F483/subscriptions", + "organizations_url": "https://api.github.com/users/F483/orgs", + "repos_url": "https://api.github.com/users/F483/repos", + "events_url": "https://api.github.com/users/F483/events{/privacy}", + "received_events_url": "https://api.github.com/users/F483/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/F483/btctxstore/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2015-12-23T15:27:34Z", + "updated_at": "2016-02-29T00:52:14Z", + "closed_at": null, + "body": "> matthewr\r\n> 7:04 AM @f483 on line 283 of control.py in btctxstore: the first parameter to struct needs to be a byte string otherwise it doesn't run on windows. I don't have commit access so I can't change this but might want to look into it.\r\n\r\nI don't think its that simple, the error must be before that as all input should be sanitized and normalized before it gets that far. I will check if the unittest cover all possible inputs and add them if not. Then fix anything that breaks.\r\n\r\n@robertsdotpm do you have a stack trace or the input that caused the problem.", + "score": 0.46075937 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/11983", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/11983/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/11983/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/11983/events", + "html_url": "https://github.com/pydata/pandas/issues/11983", + "id": 125369922, + "number": 11983, + "title": "Panel resample by periods does not work in 0.17.1 for certain panels", + "user": { + "login": "rekcahpassyla", + "id": 7807926, + "avatar_url": "https://avatars.githubusercontent.com/u/7807926?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rekcahpassyla", + "html_url": "https://github.com/rekcahpassyla", + "followers_url": "https://api.github.com/users/rekcahpassyla/followers", + "following_url": "https://api.github.com/users/rekcahpassyla/following{/other_user}", + "gists_url": "https://api.github.com/users/rekcahpassyla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rekcahpassyla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rekcahpassyla/subscriptions", + "organizations_url": "https://api.github.com/users/rekcahpassyla/orgs", + "repos_url": "https://api.github.com/users/rekcahpassyla/repos", + "events_url": "https://api.github.com/users/rekcahpassyla/events{/privacy}", + "received_events_url": "https://api.github.com/users/rekcahpassyla/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Period", + "name": "Period", + "color": "eb6420" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Resample", + "name": "Resample", + "color": "207de5" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 2, + "created_at": "2016-01-07T10:48:52Z", + "updated_at": "2016-04-11T22:06:17Z", + "closed_at": null, + "body": "This code works in 0.15.2 but breaks in 0.17.1\r\n\r\n```python\r\nimport pandas as pd\r\nimport numpy as np\r\n\r\npd.show_versions()\r\n\r\nitems = ['foo']\r\nmajor_axis = pd.date_range('2013-04-01', '2013-06-30')\r\nminor_axis = [0]\r\n\r\np = pd.Panel(\r\n np.ones(major_axis.size).reshape(1, -1, 1),\r\n items=items,\r\n major_axis=major_axis\r\n)\r\n\r\np.resample('Q', how='mean', axis=1, kind='period')\r\n```\r\n\r\n### 0.15.2:\r\n```\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 2.7.11.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 26 Stepping 5, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: en_GB\r\n\r\npandas: 0.15.2\r\nnose: 1.3.7\r\nCython: 0.22\r\nnumpy: 1.9.3\r\nscipy: 0.16.0\r\nstatsmodels: None\r\nIPython: 3.2.1\r\nsphinx: 1.3.1\r\npatsy: 0.3.0\r\ndateutil: 2.4.1\r\npytz: 2015.7\r\nbottleneck: 1.0.0\r\ntables: 3.2.0\r\nnumexpr: 2.4.3\r\nmatplotlib: 1.4.3\r\nopenpyxl: 1.8.5\r\nxlrd: 0.9.4\r\nxlwt: 0.7.5\r\nxlsxwriter: 0.7.3\r\nlxml: 3.4.4\r\nbs4: 4.3.2\r\nhtml5lib: 0.999\r\nhttplib2: None\r\napiclient: None\r\nrpy2: None\r\nsqlalchemy: 1.0.9\r\npymysql: None\r\npsycopg2: None\r\nOut[1]: \r\n\r\nDimensions: 1 (items) x 1 (major_axis) x 1 (minor_axis)\r\nItems axis: foo to foo\r\nMajor_axis axis: 2013Q2 to 2013Q2\r\nMinor_axis axis: 0 to 0\r\n```\r\n\r\n### 0.17.1:\r\n\r\n```\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 2.7.11.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 26 Stepping 5, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.17.1\r\nnose: 1.3.7\r\npip: 7.1.2\r\nsetuptools: 19.1.1\r\nCython: 0.23.4\r\nnumpy: 1.10.2\r\nscipy: 0.16.0\r\nstatsmodels: 0.6.1\r\nIPython: 3.2.1\r\nsphinx: 1.3\r\npatsy: 0.4.0\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: 1.0.0\r\ntables: 3.2.2\r\nnumexpr: 2.4.4\r\nmatplotlib: 1.4.3\r\nopenpyxl: None\r\nxlrd: 0.9.4\r\nxlwt: None\r\nxlsxwriter: 0.7.7\r\nlxml: None\r\nbs4: 4.3.2\r\nhtml5lib: 0.999\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.10\r\npymysql: None\r\npsycopg2: None\r\nJinja2: None\r\n\r\n\r\nIn [11]: p.resample('Q', how='mean', axis=1, kind='period')\r\n---------------------------------------------------------------------------\r\nNotImplementedError Traceback (most recent call last)\r\n in ()\r\n----> 1 p.resample('Q', how='mean', axis=1, kind='period')\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\core\\generic.pyc in resample(self, rule, how, axis, fill_method, closed, label, convention, kind,\r\nloffset, limit, base)\r\n 3641 fill_method=fill_method, convention=convention,\r\n 3642 limit=limit, base=base)\r\n-> 3643 return sampler.resample(self).__finalize__(self)\r\n 3644\r\n 3645 def first(self, offset):\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\tseries\\resample.pyc in resample(self, obj)\r\n 80\r\n 81 if isinstance(ax, DatetimeIndex):\r\n---> 82 rs = self._resample_timestamps()\r\n 83 elif isinstance(ax, PeriodIndex):\r\n 84 offset = to_offset(self.freq)\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\tseries\\resample.pyc in _resample_timestamps(self, kind)\r\n 285 # downsample\r\n 286 grouped = obj.groupby(grouper, axis=self.axis)\r\n--> 287 result = grouped.aggregate(self._agg_method)\r\n 288 # GH2073\r\n 289 if self.fill_method is not None:\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\core\\groupby.pyc in aggregate(self, arg, *args, **kwargs)\r\n 3661 \"\"\"\r\n 3662 if isinstance(arg, compat.string_types):\r\n-> 3663 return getattr(self, arg)(*args, **kwargs)\r\n 3664\r\n 3665 return self._aggregate_generic(arg, *args, **kwargs)\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\core\\groupby.pyc in mean(self)\r\n 764 self._set_selection_from_grouper()\r\n 765 f = lambda x: x.mean(axis=self.axis)\r\n--> 766 return self._python_agg_general(f)\r\n 767\r\n 768 def median(self):\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\core\\groupby.pyc in _python_agg_general(self, func, *args, **kwargs)\r\n 1223 # iterate through \"columns\" ex exclusions to populate output dict\r\n 1224 output = {}\r\n-> 1225 for name, obj in self._iterate_slices():\r\n 1226 try:\r\n 1227 result, counts = self.grouper.agg_series(obj, f)\r\n\r\nc:\\python\\envs\\pandas-0.17\\lib\\site-packages\\pandas\\core\\groupby.pyc in _iterate_slices(self)\r\n 3637 slicer = lambda x: self._selected_obj[x]\r\n 3638 else:\r\n-> 3639 raise NotImplementedError(\"axis other than 0 is not supported\")\r\n 3640\r\n 3641 for val in slice_axis:\r\n\r\nNotImplementedError: axis other than 0 is not supported\r\n\r\n```\r\n", + "score": 0.42047954 + }, + { + "url": "https://api.github.com/repos/jaraco/jaraco.video/issues/6", + "repository_url": "https://api.github.com/repos/jaraco/jaraco.video", + "labels_url": "https://api.github.com/repos/jaraco/jaraco.video/issues/6/labels{/name}", + "comments_url": "https://api.github.com/repos/jaraco/jaraco.video/issues/6/comments", + "events_url": "https://api.github.com/repos/jaraco/jaraco.video/issues/6/events", + "html_url": "https://github.com/jaraco/jaraco.video/issues/6", + "id": 126203868, + "number": 6, + "title": "Can't create Device instance", + "user": { + "login": "jaraco", + "id": 308610, + "avatar_url": "https://avatars.githubusercontent.com/u/308610?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jaraco", + "html_url": "https://github.com/jaraco", + "followers_url": "https://api.github.com/users/jaraco/followers", + "following_url": "https://api.github.com/users/jaraco/following{/other_user}", + "gists_url": "https://api.github.com/users/jaraco/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jaraco/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jaraco/subscriptions", + "organizations_url": "https://api.github.com/users/jaraco/orgs", + "repos_url": "https://api.github.com/users/jaraco/repos", + "events_url": "https://api.github.com/users/jaraco/events{/privacy}", + "received_events_url": "https://api.github.com/users/jaraco/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jaraco/jaraco.video/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/jaraco/jaraco.video/labels/major", + "name": "major", + "color": "ededed" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2016-01-12T03:58:18Z", + "updated_at": "2016-01-13T03:54:59Z", + "closed_at": null, + "body": "Originally reported by: **Curtis Maloney (Bitbucket: [funkybob](http://bitbucket.org/funkybob), GitHub: [funkybob](http://github.com/funkybob))**\n\n----------------------------------------\n\nHave tried latest pip version and BB repo from today, and get the same result:\n\n\n```\n#!python\n\n>>> c = capture.Device(0)\nTraceback (most recent call last):\n File \"\", line 1, in \n File \"C:\\Python27\\lib\\site-packages\\jaraco\\video\\capture.py\", line 54, in __init__\n self.initialize()\n File \"C:\\Python27\\lib\\site-packages\\jaraco\\video\\capture.py\", line 94, in initialize\n None,\n_ctypes.COMError: (-2147467259, 'Unspecified error', (None, None, None, 0, None))\n```\n\nPython 2.7.11 (32bit)\nWindows 7 Professional (64bit)\n\n----------------------------------------\n- Bitbucket: https://bitbucket.org/jaraco/jaraco.video/issue/6\n", + "score": 1.1030604 + }, + { + "url": "https://api.github.com/repos/hoburg/gpkit/issues/510", + "repository_url": "https://api.github.com/repos/hoburg/gpkit", + "labels_url": "https://api.github.com/repos/hoburg/gpkit/issues/510/labels{/name}", + "comments_url": "https://api.github.com/repos/hoburg/gpkit/issues/510/comments", + "events_url": "https://api.github.com/repos/hoburg/gpkit/issues/510/events", + "html_url": "https://github.com/hoburg/gpkit/issues/510", + "id": 131486248, + "number": 510, + "title": "Windows pip install instructions out of date", + "user": { + "login": "bqpd", + "id": 1482776, + "avatar_url": "https://avatars.githubusercontent.com/u/1482776?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bqpd", + "html_url": "https://github.com/bqpd", + "followers_url": "https://api.github.com/users/bqpd/followers", + "following_url": "https://api.github.com/users/bqpd/following{/other_user}", + "gists_url": "https://api.github.com/users/bqpd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bqpd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bqpd/subscriptions", + "organizations_url": "https://api.github.com/users/bqpd/orgs", + "repos_url": "https://api.github.com/users/bqpd/repos", + "events_url": "https://api.github.com/users/bqpd/events{/privacy}", + "received_events_url": "https://api.github.com/users/bqpd/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/hoburg/gpkit/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/hoburg/gpkit/milestones/14", + "html_url": "https://github.com/hoburg/gpkit/milestones/Docs", + "labels_url": "https://api.github.com/repos/hoburg/gpkit/milestones/14/labels", + "id": 1608352, + "number": 14, + "title": "Docs", + "description": "Scrubbing / improvement of documentation at http://gpkit.rtfd.org", + "creator": { + "login": "whoburg", + "id": 6042395, + "avatar_url": "https://avatars.githubusercontent.com/u/6042395?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/whoburg", + "html_url": "https://github.com/whoburg", + "followers_url": "https://api.github.com/users/whoburg/followers", + "following_url": "https://api.github.com/users/whoburg/following{/other_user}", + "gists_url": "https://api.github.com/users/whoburg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/whoburg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/whoburg/subscriptions", + "organizations_url": "https://api.github.com/users/whoburg/orgs", + "repos_url": "https://api.github.com/users/whoburg/repos", + "events_url": "https://api.github.com/users/whoburg/events{/privacy}", + "received_events_url": "https://api.github.com/users/whoburg/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 32, + "closed_issues": 6, + "state": "open", + "created_at": "2016-02-26T16:13:33Z", + "updated_at": "2016-06-08T21:00:05Z", + "due_on": null, + "closed_at": null + }, + "comments": 0, + "created_at": "2016-02-04T22:01:45Z", + "updated_at": "2016-03-15T18:40:51Z", + "closed_at": null, + "body": "They reference Anaconda, and need to be updated for the python xy environment.\r\n\r\nMore details:\r\nhttps://github.com/hoburg/gpkit/commit/f926d46c7bcf56f39cca7954dfbe56541bbeed18#commitcomment-15898949", + "score": 10.844188 + }, + { + "url": "https://api.github.com/repos/hoburg/gpkit/issues/512", + "repository_url": "https://api.github.com/repos/hoburg/gpkit", + "labels_url": "https://api.github.com/repos/hoburg/gpkit/issues/512/labels{/name}", + "comments_url": "https://api.github.com/repos/hoburg/gpkit/issues/512/comments", + "events_url": "https://api.github.com/repos/hoburg/gpkit/issues/512/events", + "html_url": "https://github.com/hoburg/gpkit/issues/512", + "id": 131649759, + "number": 512, + "title": "old version of GPkit on PyPI? (t_issue476)", + "user": { + "login": "whoburg", + "id": 6042395, + "avatar_url": "https://avatars.githubusercontent.com/u/6042395?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/whoburg", + "html_url": "https://github.com/whoburg", + "followers_url": "https://api.github.com/users/whoburg/followers", + "following_url": "https://api.github.com/users/whoburg/following{/other_user}", + "gists_url": "https://api.github.com/users/whoburg/gists{/gist_id}", + "starred_url": "https://api.github.com/users/whoburg/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/whoburg/subscriptions", + "organizations_url": "https://api.github.com/users/whoburg/orgs", + "repos_url": "https://api.github.com/users/whoburg/repos", + "events_url": "https://api.github.com/users/whoburg/events{/privacy}", + "received_events_url": "https://api.github.com/users/whoburg/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/hoburg/gpkit/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/hoburg/gpkit/milestones/5", + "html_url": "https://github.com/hoburg/gpkit/milestones/Distant%20release", + "labels_url": "https://api.github.com/repos/hoburg/gpkit/milestones/5/labels", + "id": 1213262, + "number": 5, + "title": "Distant release", + "description": "These are issues with a shelf life greater than 3 months.", + "creator": { + "login": "bqpd", + "id": 1482776, + "avatar_url": "https://avatars.githubusercontent.com/u/1482776?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/bqpd", + "html_url": "https://github.com/bqpd", + "followers_url": "https://api.github.com/users/bqpd/followers", + "following_url": "https://api.github.com/users/bqpd/following{/other_user}", + "gists_url": "https://api.github.com/users/bqpd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bqpd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bqpd/subscriptions", + "organizations_url": "https://api.github.com/users/bqpd/orgs", + "repos_url": "https://api.github.com/users/bqpd/repos", + "events_url": "https://api.github.com/users/bqpd/events{/privacy}", + "received_events_url": "https://api.github.com/users/bqpd/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 27, + "closed_issues": 7, + "state": "open", + "created_at": "2015-07-17T17:11:51Z", + "updated_at": "2016-06-19T03:48:16Z", + "due_on": null, + "closed_at": null + }, + "comments": 13, + "created_at": "2016-02-05T13:49:26Z", + "updated_at": "2016-03-15T18:40:34Z", + "closed_at": null, + "body": "A user attempting to install reports,\r\n\r\n\"I'm attaching a screenshot of the error. I have uninstalled and reinstalled python(x,y) a couple of times and get the same error. \"\r\n\r\n![python](https://cloud.githubusercontent.com/assets/6042395/12848041/55ec8a04-cbe5-11e5-9cf7-e3c421eff49a.JPG)\r\n", + "score": 0.8324326 + }, + { + "url": "https://api.github.com/repos/scrapy/scrapy/issues/1764", + "repository_url": "https://api.github.com/repos/scrapy/scrapy", + "labels_url": "https://api.github.com/repos/scrapy/scrapy/issues/1764/labels{/name}", + "comments_url": "https://api.github.com/repos/scrapy/scrapy/issues/1764/comments", + "events_url": "https://api.github.com/repos/scrapy/scrapy/issues/1764/events", + "html_url": "https://github.com/scrapy/scrapy/issues/1764", + "id": 131659833, + "number": 1764, + "title": "sslv3 alert handshake failure when making a request", + "user": { + "login": "lagenar", + "id": 38682, + "avatar_url": "https://avatars.githubusercontent.com/u/38682?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/lagenar", + "html_url": "https://github.com/lagenar", + "followers_url": "https://api.github.com/users/lagenar/followers", + "following_url": "https://api.github.com/users/lagenar/following{/other_user}", + "gists_url": "https://api.github.com/users/lagenar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lagenar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lagenar/subscriptions", + "organizations_url": "https://api.github.com/users/lagenar/orgs", + "repos_url": "https://api.github.com/users/lagenar/repos", + "events_url": "https://api.github.com/users/lagenar/events{/privacy}", + "received_events_url": "https://api.github.com/users/lagenar/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/scrapy/scrapy/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/scrapy/scrapy/labels/https", + "name": "https", + "color": "e11d21" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 35, + "created_at": "2016-02-05T14:34:13Z", + "updated_at": "2016-04-19T09:40:37Z", + "closed_at": null, + "body": "Hi there, I recently upgraded to the latest scrapy and on some sites SSL enabled sites I get an exception when trying to make requests to it, while on previous scrapy versions I didn't have this issue.\r\nThe issue can be seen by making a request with scrapy shell:\r\n\r\n`scrapy shell \"https://www.gohastings.com/\"`\r\n\r\nThe error I get is: \r\n`Retrying (failed 1 times): `", + "score": 0.32683542 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/30957", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/30957/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/30957/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/30957/events", + "html_url": "https://github.com/saltstack/salt/issues/30957", + "id": 131787870, + "number": 30957, + "title": "using pip to update salt minions doesn't work", + "user": { + "login": "jefftucker", + "id": 178283, + "avatar_url": "https://avatars.githubusercontent.com/u/178283?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jefftucker", + "html_url": "https://github.com/jefftucker", + "followers_url": "https://api.github.com/users/jefftucker/followers", + "following_url": "https://api.github.com/users/jefftucker/following{/other_user}", + "gists_url": "https://api.github.com/users/jefftucker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jefftucker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jefftucker/subscriptions", + "organizations_url": "https://api.github.com/users/jefftucker/orgs", + "repos_url": "https://api.github.com/users/jefftucker/repos", + "events_url": "https://api.github.com/users/jefftucker/events{/privacy}", + "received_events_url": "https://api.github.com/users/jefftucker/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Documentation", + "name": "Documentation", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P3", + "name": "P3", + "color": "0a3d77" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Packaging", + "name": "Packaging", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Stretch", + "name": "Stretch", + "color": "FF1493" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/TEAM%20Platform", + "name": "TEAM Platform", + "color": "A9A9A9" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Windows", + "name": "Windows", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "twangboy", + "id": 9383935, + "avatar_url": "https://avatars.githubusercontent.com/u/9383935?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/twangboy", + "html_url": "https://github.com/twangboy", + "followers_url": "https://api.github.com/users/twangboy/followers", + "following_url": "https://api.github.com/users/twangboy/following{/other_user}", + "gists_url": "https://api.github.com/users/twangboy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/twangboy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/twangboy/subscriptions", + "organizations_url": "https://api.github.com/users/twangboy/orgs", + "repos_url": "https://api.github.com/users/twangboy/repos", + "events_url": "https://api.github.com/users/twangboy/events{/privacy}", + "received_events_url": "https://api.github.com/users/twangboy/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/83", + "html_url": "https://github.com/saltstack/salt/milestones/C%208", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/83/labels", + "id": 1785130, + "number": 83, + "title": "C 8", + "description": "", + "creator": { + "login": "meggiebot", + "id": 12242451, + "avatar_url": "https://avatars.githubusercontent.com/u/12242451?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/meggiebot", + "html_url": "https://github.com/meggiebot", + "followers_url": "https://api.github.com/users/meggiebot/followers", + "following_url": "https://api.github.com/users/meggiebot/following{/other_user}", + "gists_url": "https://api.github.com/users/meggiebot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/meggiebot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/meggiebot/subscriptions", + "organizations_url": "https://api.github.com/users/meggiebot/orgs", + "repos_url": "https://api.github.com/users/meggiebot/repos", + "events_url": "https://api.github.com/users/meggiebot/events{/privacy}", + "received_events_url": "https://api.github.com/users/meggiebot/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 31, + "closed_issues": 17, + "state": "open", + "created_at": "2016-05-24T15:11:11Z", + "updated_at": "2016-06-21T18:51:53Z", + "due_on": "2016-06-24T06:00:00Z", + "closed_at": null + }, + "comments": 2, + "created_at": "2016-02-05T23:24:54Z", + "updated_at": "2016-06-09T00:34:31Z", + "closed_at": null, + "body": "This documentation for pip states that salt can use pip to update the salt minion on windows with salt: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.pip.html\r\n\r\nThis is a complete lie. It doesn't work in any way and as far as I can tell, upgrading salt on windows from anything other than a full .msi file is impossible. I get lots of errors, the first of which (when using the exact command specified) is this: \r\n\r\n```\r\nsalt minion-name pip.install pkgs=[salt==2015.8.3] bin_env='c:\\salt\\bin\\scripts\\pip.exe' cwd='c:\\salt\\bin\\Scripts' upgrade=true\r\ndrowe-www-1:\r\n ----------\r\n pid:\r\n 3672\r\n retcode:\r\n 1\r\n stderr:\r\n You are using pip version 6.1.1, however version 8.0.2 is available.\r\n You should consider upgrading via the 'pip install --upgrade pip' command.\r\n c:\\salt\\bin\\lib\\site-packages\\pip\\_vendor\\requests\\packages\\urllib3\\util\\ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.\r\n InsecurePlatformWarning\r\n DEPRECATION: Uninstalling a distutils installed project (salt) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.\r\n Command \"c:\\salt\\bin\\python.exe -c \"import setuptools, tokenize;__file__='c:\\\\windows\\\\temp\\\\pip-build-8l1lyu\\\\salt\\\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record c:\\windows\\temp\\pip-ubhxtq-record\\install-record.txt --single-version-externally-managed --compile\" failed with error code 1 in c:\\windows\\temp\\pip-build-8l1lyu\\salt\r\n stdout:\r\n Collecting salt==2015.8.3\r\n Downloading salt-2015.8.3.tar.gz (6.8MB)\r\n Requirement already up-to-date: Jinja2 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: msgpack-python>0.3 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: PyYAML in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: MarkupSafe in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: requests>=1.0.0 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: tornado>=4.2.1 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: futures>=2.0 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: WMI in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: pypiwin32>=219 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: pyzmq>=2.2.0 in c:\\salt\\bin\\lib\\site-packages (from salt==2015.8.3)\r\n Requirement already up-to-date: backports.ssl-match-hostname in c:\\salt\\bin\\lib\\site-packages (from tornado>=4.2.1->salt==2015.8.3)\r\n Requirement already up-to-date: singledispatch in c:\\salt\\bin\\lib\\site-packages (from tornado>=4.2.1->salt==2015.8.3)\r\n Requirement already up-to-date: certifi in c:\\salt\\bin\\lib\\site-packages (from tornado>=4.2.1->salt==2015.8.3)\r\n Requirement already up-to-date: backports-abc>=0.4 in c:\\salt\\bin\\lib\\site-packages (from tornado>=4.2.1->salt==2015.8.3)\r\n Requirement already up-to-date: six in c:\\salt\\bin\\lib\\site-packages (from singledispatch->tornado>=4.2.1->salt==2015.8.3)\r\n Installing collected packages: salt\r\n Found existing installation: salt 2014.7.5\r\n Uninstalling salt-2014.7.5:\r\n Successfully uninstalled salt-2014.7.5\r\n Running setup.py install for salt\r\n Complete output from command c:\\salt\\bin\\python.exe -c \"import setuptools, tokenize;__file__='c:\\\\windows\\\\temp\\\\pip-build-8l1lyu\\\\salt\\\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))\" install --record c:\\windows\\temp\\pip-ubhxtq-record\\install-record.txt --single-version-externally-managed --compile:\r\n 2015.8.3\r\n\r\n running install\r\n\r\n running install-pycrypto-windows\r\n\r\n No handlers could be found for logger \"pip.utils\"\r\n\r\n error: [Error 2] The system cannot find the file specified\r\n\r\n\r\n ----------------------------------------\r\n Rolling back uninstall of salt\r\nERROR: Minions returned with non-zero exit code\r\n```\r\n\r\nI then tried upgrading salt by going directly to the windows box and using pip, which resulted in the same message and same problem. \r\n\r\nNext, I tried using easy_install -U salt==2015.8.3 and this worked! However the minion won't start and is complaining about not findig libeay32 \r\n```Traceback (most recent call last):\r\n File \"c:\\salt\\bin\\Scripts\\salt-minion\", line 4, in \r\n __import__('pkg_resources').run_script('salt==2015.8.3', 'salt-minion')\r\n File \"c:\\salt\\bin\\lib\\site-packages\\pkg_resources\\__init__.py\", line 723, in r\r\nun_script\r\n self.require(requires)[0].run_script(script_name, ns)\r\n File \"c:\\salt\\bin\\lib\\site-packages\\pkg_resources\\__init__.py\", line 1636, in\r\nrun_script\r\n exec(code, namespace, namespace)\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\EGG-INFO\\scripts\\s\r\nalt-minion\", line 26, in \r\n salt_minion()\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\scripts.py\",\r\nline 106, in salt_minion\r\n import salt.cli.daemons\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\cli\\daemons.p\r\ny\", line 47, in \r\n from salt.utils import parsers, ip_bracket\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\utils\\parsers\r\n.py\", line 26, in \r\n import salt.config as config\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\config.py\", l\r\nine 40, in \r\n import salt.utils.sdb\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\utils\\sdb.py\"\r\n, line 9, in \r\n import salt.loader\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\loader.py\", l\r\nine 30, in \r\n import salt.utils.event\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\utils\\event.p\r\ny\", line 81, in \r\n import salt.payload\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\payload.py\",\r\nline 17, in \r\n import salt.crypt\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\crypt.py\", li\r\nne 37, in \r\n import salt.utils.rsax931\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\utils\\rsax931\r\n.py\", line 69, in \r\n libcrypto = _init_libcrypto()\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\utils\\rsax931\r\n.py\", line 47, in _init_libcrypto\r\n libcrypto = _load_libcrypto()\r\n File \"c:\\salt\\bin\\lib\\site-packages\\salt-2015.8.3-py2.7.egg\\salt\\utils\\rsax931\r\n.py\", line 25, in _load_libcrypto\r\n return cdll.LoadLibrary('libeay32')\r\n File \"c:\\salt\\bin\\lib\\ctypes\\__init__.py\", line 443, in LoadLibrary\r\n return self._dlltype(name)\r\n File \"c:\\salt\\bin\\lib\\ctypes\\__init__.py\", line 365, in __init__\r\n self._handle = _dlopen(self._name, mode)\r\nWindowsError: [Error 126] The specified module could not be found```\r\n\r\nno problem, let's install pyopenssl! `pip install -U pyopenssl`\r\nThis gives the usual \"can't find vcvarsall.bat\" error with python packages. Not a problem, let's try again `pip install -U --only-binary pyopenssl` and this worked fine, however when starting the salt minion I still get the same error as I pasted above. \r\n\r\nMy conclusion is that the ONLY way to successfully update salt on windows machines is to write a state that downloads the installer to a specified directory and then also write a state that puts a powershell script in another directory that stops the salt minion, runs the installer, then starts the new salt minion. Please remove this lie about pip being able to upgrade the minion from your documentation.", + "score": 8.259684 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/3463", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/3463/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/3463/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/3463/events", + "html_url": "https://github.com/pypa/pip/issues/3463", + "id": 132017452, + "number": 3463, + "title": "Problems on Windows with username containing non-ASCII characters", + "user": { + "login": "pekkaklarck", + "id": 114985, + "avatar_url": "https://avatars.githubusercontent.com/u/114985?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pekkaklarck", + "html_url": "https://github.com/pekkaklarck", + "followers_url": "https://api.github.com/users/pekkaklarck/followers", + "following_url": "https://api.github.com/users/pekkaklarck/following{/other_user}", + "gists_url": "https://api.github.com/users/pekkaklarck/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pekkaklarck/subscriptions", + "organizations_url": "https://api.github.com/users/pekkaklarck/orgs", + "repos_url": "https://api.github.com/users/pekkaklarck/repos", + "events_url": "https://api.github.com/users/pekkaklarck/events{/privacy}", + "received_events_url": "https://api.github.com/users/pekkaklarck/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/encoding", + "name": "encoding", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 30, + "created_at": "2016-02-07T21:50:41Z", + "updated_at": "2016-05-23T09:53:51Z", + "closed_at": null, + "body": "When organizing a Python training recently, one participant failed to use pip after a fresh Python 2.7.11 installation on Windows. Quick investigation showed that the reason problem was `ä` in her username. We failed to workaround that even by creating a new account and needed to use `python setup.py install` instead.\r\n\r\nI now tried to reproduce the problem on my virtual machine. My main account there has only ASCII characters in the username but I created another for testing purposes. Clearly everything is not correct:\r\n\r\n```\r\nC:\\Users\\Ürjö>pip\r\nTraceback (most recent call last):\r\n File \"c:\\python27\\lib\\runpy.py\", line 162, in _run_module_as_main\r\n \"__main__\", fname, loader, pkg_name)\r\n File \"c:\\python27\\lib\\runpy.py\", line 72, in _run_code\r\n exec code in run_globals\r\n File \"C:\\Python27\\Scripts\\pip.exe\\__main__.py\", line 9, in \r\n File \"c:\\python27\\lib\\site-packages\\pip\\__init__.py\", line 210, in main\r\n cmd_name, cmd_args = parseopts(args)\r\n File \"c:\\python27\\lib\\site-packages\\pip\\__init__.py\", line 165, in parseopts\r\n parser.print_help()\r\n File \"c:\\python27\\lib\\optparse.py\", line 1670, in print_help\r\n file.write(self.format_help().encode(encoding, \"replace\"))\r\n File \"c:\\python27\\lib\\optparse.py\", line 1650, in format_help\r\n result.append(self.format_option_help(formatter))\r\n File \"c:\\python27\\lib\\optparse.py\", line 1633, in format_option_help\r\n result.append(group.format_help(formatter))\r\n File \"c:\\python27\\lib\\optparse.py\", line 1114, in format_help\r\n result += OptionContainer.format_help(self, formatter)\r\n File \"c:\\python27\\lib\\optparse.py\", line 1085, in format_help\r\n result.append(self.format_option_help(formatter))\r\n File \"c:\\python27\\lib\\optparse.py\", line 1074, in format_option_help\r\n result.append(formatter.format_option(option))\r\n File \"c:\\python27\\lib\\optparse.py\", line 316, in format_option\r\n help_text = self.expand_default(option)\r\n File \"c:\\python27\\lib\\site-packages\\pip\\baseparser.py\", line 112, in expand_default\r\n return optparse.IndentedHelpFormatter.expand_default(self, option)\r\n File \"c:\\python27\\lib\\optparse.py\", line 288, in expand_default\r\n return option.help.replace(self.default_tag, str(default_value))\r\nUnicodeEncodeError: 'ascii' codec can't encode character u'\\xdc' in position 9: ordinal not in range(128)\r\n```\r\n\r\nInterestingly installation and uninstallation seem to work fine also with this account. I guess the difference with the problem I saw earlier could be that my main user/admin doesn't have non-ASCII characters.", + "score": 4.352012 + }, + { + "url": "https://api.github.com/repos/google/grr/issues/331", + "repository_url": "https://api.github.com/repos/google/grr", + "labels_url": "https://api.github.com/repos/google/grr/issues/331/labels{/name}", + "comments_url": "https://api.github.com/repos/google/grr/issues/331/comments", + "events_url": "https://api.github.com/repos/google/grr/issues/331/events", + "html_url": "https://github.com/google/grr/issues/331", + "id": 132587611, + "number": 331, + "title": "Un-auditable dependencies in GRR code", + "user": { + "login": "darrenbilby", + "id": 5226094, + "avatar_url": "https://avatars.githubusercontent.com/u/5226094?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/darrenbilby", + "html_url": "https://github.com/darrenbilby", + "followers_url": "https://api.github.com/users/darrenbilby/followers", + "following_url": "https://api.github.com/users/darrenbilby/following{/other_user}", + "gists_url": "https://api.github.com/users/darrenbilby/gists{/gist_id}", + "starred_url": "https://api.github.com/users/darrenbilby/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/darrenbilby/subscriptions", + "organizations_url": "https://api.github.com/users/darrenbilby/orgs", + "repos_url": "https://api.github.com/users/darrenbilby/repos", + "events_url": "https://api.github.com/users/darrenbilby/events{/privacy}", + "received_events_url": "https://api.github.com/users/darrenbilby/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/google/grr/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 7, + "created_at": "2016-02-10T01:48:31Z", + "updated_at": "2016-02-26T23:11:51Z", + "closed_at": null, + "body": "We are acquiring a number of dependencies on external, unauditable blobs that are required for using GRR. While its true that we'll always depend on blobs of code, at least if they are tracked in a code repo users have an option to track the changes and updates. \r\n\r\nI don't think its a necessary state for the things we control, so would be great to start removing some of them, or at least justifying why they are there, from a brief look I found:\r\n\r\nServer debs on docs:\r\nhttps://github.com/google/grr/blob/master/scripts/install_script_ubuntu.sh#L21\r\n\r\nRekall component on apache server:\r\nhttp://images.rekall-forensic.com/share/rekall-core-1.5.0.tar.gz#egg=rekall-core-1.5\r\n\r\nChipsec component (chipsec fork tarball in docs): \r\n(relies on link in docs, fix in progress)\r\n\r\nmrgcastle Vagrant images vs upstream:\r\nhttps://github.com/google/grr/blob/master/vagrant/Vagrantfile#L14\r\n\r\n", + "score": 0.30881473 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/31280", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/31280/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/31280/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/31280/events", + "html_url": "https://github.com/saltstack/salt/issues/31280", + "id": 134367130, + "number": 31280, + "title": "salt-call state.highstate exiting with \"Exiting gracefully on Ctrl-c\" message", + "user": { + "login": "rambli", + "id": 934811, + "avatar_url": "https://avatars.githubusercontent.com/u/934811?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rambli", + "html_url": "https://github.com/rambli", + "followers_url": "https://api.github.com/users/rambli/followers", + "following_url": "https://api.github.com/users/rambli/following{/other_user}", + "gists_url": "https://api.github.com/users/rambli/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rambli/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rambli/subscriptions", + "organizations_url": "https://api.github.com/users/rambli/orgs", + "repos_url": "https://api.github.com/users/rambli/repos", + "events_url": "https://api.github.com/users/rambli/events{/privacy}", + "received_events_url": "https://api.github.com/users/rambli/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P3", + "name": "P3", + "color": "0a3d77" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Platform", + "name": "Platform", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Windows", + "name": "Windows", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/13", + "html_url": "https://github.com/saltstack/salt/milestones/Approved", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/13/labels", + "id": 9265, + "number": 13, + "title": "Approved", + "description": "All issues that are ready to be worked on, both bugs and features.", + "creator": { + "login": "thatch45", + "id": 507599, + "avatar_url": "https://avatars.githubusercontent.com/u/507599?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thatch45", + "html_url": "https://github.com/thatch45", + "followers_url": "https://api.github.com/users/thatch45/followers", + "following_url": "https://api.github.com/users/thatch45/following{/other_user}", + "gists_url": "https://api.github.com/users/thatch45/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thatch45/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thatch45/subscriptions", + "organizations_url": "https://api.github.com/users/thatch45/orgs", + "repos_url": "https://api.github.com/users/thatch45/repos", + "events_url": "https://api.github.com/users/thatch45/events{/privacy}", + "received_events_url": "https://api.github.com/users/thatch45/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 3040, + "closed_issues": 3781, + "state": "open", + "created_at": "2011-05-14T04:00:56Z", + "updated_at": "2016-06-21T19:49:47Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2016-02-17T18:55:35Z", + "updated_at": "2016-02-19T19:28:22Z", + "closed_at": null, + "body": "I'm facing the following issue running a highstate command with a very simple top file:\r\nSalt version: 2015.8.5 (Beryllium)\r\nHost: Windows 2012R2 VM \r\nSingle minion running in masterless mode\r\n\r\n```\r\nC:\\salt\\srv\\salt>salt-call state.highstate -l debug --local\r\n[DEBUG ] Reading configuration from c:\\salt\\conf\\minion\r\n[DEBUG ] Using cached minion ID from c:\\salt\\conf\\minion_id: WIN-M9GCE6IBR1K.xyz.net\r\n[DEBUG ] Configuration file path: c:\\salt\\conf\\minion\r\n[WARNING ] Insecure logging configuration detected! Sensitive data may be logged\r\n.\r\n[DEBUG ] Reading configuration from c:\\salt\\conf\\minion\r\n[DEBUG ] LazyLoaded jinja.render\r\n[DEBUG ] LazyLoaded yaml.render\r\n[DEBUG ] LazyLoaded jinja.render\r\n[DEBUG ] LazyLoaded yaml.render\r\n[DEBUG ] LazyLoaded state.highstate\r\n[DEBUG ] LazyLoaded grains.get\r\n[DEBUG ] LazyLoaded saltutil.is_running\r\n[DEBUG ] LazyLoaded roots.envs\r\n\r\nExiting gracefully on Ctrl-c\r\n```\r\n\r\nUpon digging into salt code by following trace output, turns out saltutil.is_running check is the issue. I verified that upon commenting the state function running check below, my top.sls gets properly processed on a highstate call.\r\n```\r\nsalt/modules/state.py: Line 119\r\nactive = __salt__['saltutil.is_running']('state.*')\r\n```\r\nEven running this raises the \"Exiting gracefully..\" message:\r\n```\r\n$> salt-call saltutil.is_running state.highstate\r\nlocal:\r\nExiting gracefully on Ctrl-c\r\n```\r\nI am digging in further to find out why **attempting to get list of running jobs on this minion is raising a KeyboardInterrupt exception**. Any ideas why checking state with saltutil.is_running is raising this error?\r\n\r\nAlthough I'm fairly certain my state files have nothing to do with this issue, here they are for reference:\r\ntop.sls:\r\n```\r\nbase:\r\n '*':\r\n - service\r\n```\r\n\r\nservice.sls:\r\n```\r\nPower:\r\n service.running:\r\n - enable: True\r\n - reload: True\r\n```\r\n\r\nSalt version info:\r\n```\r\nSalt Version:\r\n Salt: 2015.8.5\r\n\r\nDependency Versions:\r\n Jinja2: 2.8\r\n M2Crypto: Not Installed\r\n Mako: Not Installed\r\n PyYAML: 3.11\r\n PyZMQ: 15.2.0\r\n Python: 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD6\r\n4)]\r\n RAET: Not Installed\r\n Tornado: 4.3\r\n ZMQ: 4.1.2\r\n cffi: 1.5.0\r\n cherrypy: Not Installed\r\n dateutil: Not Installed\r\n gitdb: 0.6.4\r\n gitpython: 1.0.1\r\n ioflo: Not Installed\r\n libgit2: Not Installed\r\n libnacl: 1.4.4\r\n msgpack-pure: Not Installed \r\n msgpack-python: 0.4.7\r\n mysql-python: Not Installed\r\n pycparser: 2.14\r\n pycrypto: 2.6.1\r\n pygit2: Not Installed\r\n python-gnupg: Not Installed\r\n smmap: 0.9.0\r\n timelib: Not Installed\r\n\r\nSystem Versions:\r\n dist:\r\n machine: AMD64\r\n release: 2012Server\r\n system: 2012Server 6.2.9200 Multiprocessor Free\r\n```", + "score": 0.6579218 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12424", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12424/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12424/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12424/events", + "html_url": "https://github.com/pydata/pandas/issues/12424", + "id": 135704250, + "number": 12424, + "title": "pd.to_datetime raises AttributeError with specific inputs when errors='ignore'", + "user": { + "login": "aktiur", + "id": 1560652, + "avatar_url": "https://avatars.githubusercontent.com/u/1560652?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/aktiur", + "html_url": "https://github.com/aktiur", + "followers_url": "https://api.github.com/users/aktiur/followers", + "following_url": "https://api.github.com/users/aktiur/following{/other_user}", + "gists_url": "https://api.github.com/users/aktiur/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aktiur/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aktiur/subscriptions", + "organizations_url": "https://api.github.com/users/aktiur/orgs", + "repos_url": "https://api.github.com/users/aktiur/repos", + "events_url": "https://api.github.com/users/aktiur/events{/privacy}", + "received_events_url": "https://api.github.com/users/aktiur/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Novice", + "name": "Difficulty Novice", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Timeseries", + "name": "Timeseries", + "color": "AFEEEE" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 1, + "created_at": "2016-02-23T10:57:08Z", + "updated_at": "2016-02-23T14:22:26Z", + "closed_at": null, + "body": "I'm trying to import a csv file into a PostgreSQL table using [odo](https://github.com/blaze/odo). During import, `odo` tries to automatically detect date columns using `pd.to_datetime` with `errors='ignore'`. However, with one of my columns (that isn't a date column, it's some kind of zip code), `pd.to_datetime` raises an AttributeError.\r\n\r\nI have been able to narrow down the problem to this small snippet:\r\n\r\n >>> pd.to_datetime(pd.Series(['01210', np.nan]), errors='ignore')\r\n Traceback (most recent call last):\r\n File \"pandas\\tslib.pyx\", line 1952, in pandas.tslib.array_to_datetime (pandas\\tslib.c:35219)\r\n File \"pandas\\tslib.pyx\", line 1432, in pandas.tslib._check_dts_bounds (pandas\\tslib.c:26809)\r\n pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1210-01-01 00:00:00\r\n\r\n During handling of the above exception, another exception occurred:\r\n\r\n Traceback (most recent call last):\r\n File \"pandas\\tslib.pyx\", line 1981, in pandas.tslib.array_to_datetime (pandas\\tslib.c:35724)\r\n File \"pandas\\tslib.pyx\", line 1975, in pandas.tslib.array_to_datetime (pandas\\tslib.c:35602)\r\n File \"pandas\\tslib.pyx\", line 1228, in pandas.tslib.convert_to_tsobject (pandas\\tslib.c:23563)\r\n File \"pandas\\tslib.pyx\", line 1432, in pandas.tslib._check_dts_bounds (pandas\\tslib.c:26809)\r\n pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1210-01-01 00:00:00\r\n\r\n During handling of the above exception, another exception occurred:\r\n\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"C:\\Miniconda3\\envs\\py35\\lib\\site-packages\\pandas\\util\\decorators.py\", line 89, in wrapper\r\n return func(*args, **kwargs)\r\n File \"C:\\Miniconda3\\envs\\py35\\lib\\site-packages\\pandas\\tseries\\tools.py\", line 276, in to_datetime\r\n unit=unit, infer_datetime_format=infer_datetime_format)\r\n File \"C:\\Miniconda3\\envs\\py35\\lib\\site-packages\\pandas\\tseries\\tools.py\", line 390, in _to_datetime\r\n values = _convert_listlike(arg._values, False, format)\r\n File \"C:\\Miniconda3\\envs\\py35\\lib\\site-packages\\pandas\\tseries\\tools.py\", line 372, in _convert_listlike\r\n require_iso8601=require_iso8601)\r\n File \"pandas\\tslib.pyx\", line 1847, in pandas.tslib.array_to_datetime (pandas\\tslib.c:37155)\r\n File \"pandas\\tslib.pyx\", line 2005, in pandas.tslib.array_to_datetime (pandas\\tslib.c:36116)\r\n AttributeError: 'float' object has no attribute 'view'\r\n#### output of ``pd.show_versions()``\r\n\r\n INSTALLED VERSIONS\r\n ------------------\r\n commit: None\r\n python: 3.5.1.final.0\r\n python-bits: 64\r\n OS: Windows\r\n OS-release: 10\r\n machine: AMD64\r\n processor: Intel64 Family 6 Model 61 Stepping 4, GenuineIntel\r\n byteorder: little\r\n LC_ALL: None\r\n LANG: None\r\n\r\n pandas: 0.17.1\r\n nose: None\r\n pip: 8.0.2\r\n setuptools: 19.6.2\r\n Cython: None\r\n numpy: 1.10.1\r\n scipy: 0.16.0\r\n statsmodels: None\r\n IPython: 4.0.1\r\n sphinx: 1.3.1\r\n patsy: None\r\n dateutil: 2.4.2\r\n pytz: 2015.7\r\n blosc: None\r\n bottleneck: None\r\n tables: None\r\n numexpr: None\r\n matplotlib: 1.5.0\r\n openpyxl: None\r\n xlrd: None\r\n xlwt: None\r\n xlsxwriter: None\r\n lxml: None\r\n bs4: None\r\n html5lib: None\r\n httplib2: None\r\n apiclient: None\r\n sqlalchemy: None\r\n pymysql: None\r\n psycopg2: 2.6.1 (dt dec pq3 ext lo64)\r\n Jinja2: 2.8", + "score": 0.45896894 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12433", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12433/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12433/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12433/events", + "html_url": "https://github.com/pydata/pandas/issues/12433", + "id": 135919099, + "number": 12433, + "title": "Panel resample fails for degenerate panels", + "user": { + "login": "killchr", + "id": 17442238, + "avatar_url": "https://avatars.githubusercontent.com/u/17442238?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/killchr", + "html_url": "https://github.com/killchr", + "followers_url": "https://api.github.com/users/killchr/followers", + "following_url": "https://api.github.com/users/killchr/following{/other_user}", + "gists_url": "https://api.github.com/users/killchr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/killchr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/killchr/subscriptions", + "organizations_url": "https://api.github.com/users/killchr/orgs", + "repos_url": "https://api.github.com/users/killchr/repos", + "events_url": "https://api.github.com/users/killchr/events{/privacy}", + "received_events_url": "https://api.github.com/users/killchr/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Medium", + "name": "Effort Medium", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Resample", + "name": "Resample", + "color": "207de5" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Reshaping", + "name": "Reshaping", + "color": "02d7e1" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 1, + "created_at": "2016-02-24T01:16:08Z", + "updated_at": "2016-04-18T18:19:08Z", + "closed_at": null, + "body": "#### Code Sample, a copy-pastable example if possible\r\n```\r\nimport numpy as np\r\nimport pandas as pd\r\n\r\ndr = pd.date_range('20100101','20151231',freq='T')\r\np1 = pd.Panel(items = dr, data=np.random.randn(len(dr),3,3))\r\n#this works\r\np2 = p1.resample('D', axis=0, how='last')\r\np3 = pd.Panel(items = dr, data=np.random.randn(len(dr),1,1))\r\n#this causes an error\r\np4 = p3.resample('D', axis=0, how='last')\r\n```\r\n\r\n#### Expected Output\r\n\r\n#### output of ``pd.show_versions()``\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 3.5.1.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.17.1\r\nnose: 1.3.7\r\npip: 8.0.2\r\nsetuptools: 19.6.2\r\nCython: 0.23.4\r\nnumpy: 1.10.4\r\nscipy: 0.17.0\r\nstatsmodels: 0.6.1\r\nIPython: None\r\nsphinx: 1.3.1\r\npatsy: 0.4.0\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: 1.0.0\r\ntables: 3.2.2\r\nnumexpr: 2.4.6\r\nmatplotlib: 1.5.1\r\nopenpyxl: 2.3.2\r\nxlrd: 0.9.4\r\nxlwt: 1.0.0\r\nxlsxwriter: 0.8.4\r\nlxml: 3.5.0\r\nbs4: 4.4.1\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.11\r\npymysql: None\r\npsycopg2: None\r\nJinja2: 2.8\r\n", + "score": 0.79762477 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/3509", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/3509/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/3509/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/3509/events", + "html_url": "https://github.com/pypa/pip/issues/3509", + "id": 136044945, + "number": 3509, + "title": "pip --isolated doesn't work for certain packages", + "user": { + "login": "TheFriendlyCoder", + "id": 5114350, + "avatar_url": "https://avatars.githubusercontent.com/u/5114350?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/TheFriendlyCoder", + "html_url": "https://github.com/TheFriendlyCoder", + "followers_url": "https://api.github.com/users/TheFriendlyCoder/followers", + "following_url": "https://api.github.com/users/TheFriendlyCoder/following{/other_user}", + "gists_url": "https://api.github.com/users/TheFriendlyCoder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TheFriendlyCoder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TheFriendlyCoder/subscriptions", + "organizations_url": "https://api.github.com/users/TheFriendlyCoder/orgs", + "repos_url": "https://api.github.com/users/TheFriendlyCoder/repos", + "events_url": "https://api.github.com/users/TheFriendlyCoder/events{/privacy}", + "received_events_url": "https://api.github.com/users/TheFriendlyCoder/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/setuptools", + "name": "setuptools", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 11, + "created_at": "2016-02-24T12:19:46Z", + "updated_at": "2016-02-26T07:25:50Z", + "closed_at": null, + "body": "I recently tried ran into problems downloading and installing Python packages which, after a great deal of time and effort, I have isolated to a bug with the --isolated command line option. In short, it would appear that when you perform operations with PIP using this option, a unique parameter is handed off to the distutils package which is invalid: --no-user-cfg.\r\n\r\nIn my case I'm running on a Windows 7 environment, using Python 3.2, PIP v7.1.2 and the latest version of setuptools v20.0. For a very simple use case consider the following:\r\n\r\n 1. install Python 3.2 (32 and 64bit both seem to behave the same)\r\n 2. install PIP 7.1.2 (ie: download the get-pip.py from the PIP website and do a \"python get-pip.py \"pip<8\")\r\n 3. try installing a package such as \"coverage\" using the isolated flag (ie: pip --isolated install coverage)\r\n\r\n**Results:** you will get an odd-looking error message that looks like this:\r\n\r\n> Collecting coverage\r\n> Downloading coverage-4.0.3.tar.gz (354kB)\r\n> 100% |################################| 356kB 3.7MB/s\r\n> Complete output from command python setup.py egg_info:\r\n> usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]\r\n> or: -c --help [cmd1 cmd2 ...]\r\n> or: -c --help-commands\r\n> or: -c cmd --help\r\n> \r\n> error: option --no-user-cfg not recognized\r\n\r\nConversely, if you attempt the install without the \"--isolated\" flag, the operation completes successfully.\r\n\r\nAfter doing some digging I've isolated the problem to lines 174-177 in the \"distutils_scheme\" function found in the \"Lib\\site-packages\\pip\\locations.py\" script which look as follows:\r\n\r\n```\r\n if isolated:\r\n extra_dist_args = {\"script_args\": [\"--no-user-cfg\"]}\r\n else:\r\n extra_dist_args = {}\r\n```\r\n\r\nIt would appear that, when this option is set it passes along a \"--no-user-cfg\" option to the distutils package which, according to the error output, is not a valid option supported by distutils.\r\n\r\nThis error doesn't occur for all Python packages, but I have reproduced it on several. If I'm not mistaken the commonality between all of them is that they are all tar-balls containing source projects that then have certain \"egg\" operations performed on them. Perhaps this will help further isolate and repair the issue.\r\n\r\nBelow are a list of several of the other packages I've reproduced this problem with:\r\n\r\n- coverage v4.0.3 (needed by pytest-cov)\r\n- lazy-object-proxy v1.2.1 (needed by astroid 1.1.1, a transitive dependency of PyLint)\r\n- Jinja2 v2.6 (needed by sphinx)\r\n- MarkupSafe (needed by Jinja2 v2.8)\r\n- logilab-common\r\n- PyLint v1.3.1 (last version of PyLint to officially support Python 3.2)\r\n\r\nNeedless to say, many of the very common Python packages used by anyone under these conditions will be completely unusable. As such I'd strongly encourage you to escalate this issue so it can be fixed sooner rather than later.\r\n", + "score": 5.8890653 + }, + { + "url": "https://api.github.com/repos/mkdocs/mkdocs/issues/842", + "repository_url": "https://api.github.com/repos/mkdocs/mkdocs", + "labels_url": "https://api.github.com/repos/mkdocs/mkdocs/issues/842/labels{/name}", + "comments_url": "https://api.github.com/repos/mkdocs/mkdocs/issues/842/comments", + "events_url": "https://api.github.com/repos/mkdocs/mkdocs/issues/842/events", + "html_url": "https://github.com/mkdocs/mkdocs/issues/842", + "id": 136454605, + "number": 842, + "title": "Images in subpages names index.md have the incorrect path on Windows", + "user": { + "login": "styfle", + "id": 229881, + "avatar_url": "https://avatars.githubusercontent.com/u/229881?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/styfle", + "html_url": "https://github.com/styfle", + "followers_url": "https://api.github.com/users/styfle/followers", + "following_url": "https://api.github.com/users/styfle/following{/other_user}", + "gists_url": "https://api.github.com/users/styfle/gists{/gist_id}", + "starred_url": "https://api.github.com/users/styfle/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/styfle/subscriptions", + "organizations_url": "https://api.github.com/users/styfle/orgs", + "repos_url": "https://api.github.com/users/styfle/repos", + "events_url": "https://api.github.com/users/styfle/events{/privacy}", + "received_events_url": "https://api.github.com/users/styfle/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/mkdocs/mkdocs/labels/Bug", + "name": "Bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/mkdocs/mkdocs/milestones/10", + "html_url": "https://github.com/mkdocs/mkdocs/milestones/0.16", + "labels_url": "https://api.github.com/repos/mkdocs/mkdocs/milestones/10/labels", + "id": 1727187, + "number": 10, + "title": "0.16", + "description": "", + "creator": { + "login": "d0ugal", + "id": 48211, + "avatar_url": "https://avatars.githubusercontent.com/u/48211?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/d0ugal", + "html_url": "https://github.com/d0ugal", + "followers_url": "https://api.github.com/users/d0ugal/followers", + "following_url": "https://api.github.com/users/d0ugal/following{/other_user}", + "gists_url": "https://api.github.com/users/d0ugal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/d0ugal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/d0ugal/subscriptions", + "organizations_url": "https://api.github.com/users/d0ugal/orgs", + "repos_url": "https://api.github.com/users/d0ugal/repos", + "events_url": "https://api.github.com/users/d0ugal/events{/privacy}", + "received_events_url": "https://api.github.com/users/d0ugal/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 14, + "closed_issues": 7, + "state": "open", + "created_at": "2016-04-24T10:08:16Z", + "updated_at": "2016-06-11T23:17:28Z", + "due_on": null, + "closed_at": null + }, + "comments": 26, + "created_at": "2016-02-25T17:26:20Z", + "updated_at": "2016-04-27T07:54:16Z", + "closed_at": null, + "body": "I am using the following markdown in `index.md` and running `mkdocs serve`\r\n\r\n```md\r\n## Diagram\r\nThis is the svg\r\n![svg](diagram.svg)\r\n```\r\n\r\nThe output is correct\r\n\r\n```html\r\n\"svg\"

\r\n```\r\n\r\nHowever I get a broken image as seen below\r\n\r\n![image](https://cloud.githubusercontent.com/assets/229881/13328070/b29facb0-dbba-11e5-8629-61b6b2345a8d.png)\r\n\r\nIt appears that the svg file is served as `application/octet-stream` instead of the expected `image/svg+xml`", + "score": 2.6919413 + }, + { + "url": "https://api.github.com/repos/Alfanous-team/alfanous/issues/463", + "repository_url": "https://api.github.com/repos/Alfanous-team/alfanous", + "labels_url": "https://api.github.com/repos/Alfanous-team/alfanous/issues/463/labels{/name}", + "comments_url": "https://api.github.com/repos/Alfanous-team/alfanous/issues/463/comments", + "events_url": "https://api.github.com/repos/Alfanous-team/alfanous/issues/463/events", + "html_url": "https://github.com/Alfanous-team/alfanous/issues/463", + "id": 137118470, + "number": 463, + "title": "django app fail", + "user": { + "login": "ATouhou", + "id": 6802820, + "avatar_url": "https://avatars.githubusercontent.com/u/6802820?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ATouhou", + "html_url": "https://github.com/ATouhou", + "followers_url": "https://api.github.com/users/ATouhou/followers", + "following_url": "https://api.github.com/users/ATouhou/following{/other_user}", + "gists_url": "https://api.github.com/users/ATouhou/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ATouhou/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ATouhou/subscriptions", + "organizations_url": "https://api.github.com/users/ATouhou/orgs", + "repos_url": "https://api.github.com/users/ATouhou/repos", + "events_url": "https://api.github.com/users/ATouhou/events{/privacy}", + "received_events_url": "https://api.github.com/users/ATouhou/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/Alfanous-team/alfanous/labels/bug", + "name": "bug", + "color": "FF0000" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "assem-ch", + "id": 315228, + "avatar_url": "https://avatars.githubusercontent.com/u/315228?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/assem-ch", + "html_url": "https://github.com/assem-ch", + "followers_url": "https://api.github.com/users/assem-ch/followers", + "following_url": "https://api.github.com/users/assem-ch/following{/other_user}", + "gists_url": "https://api.github.com/users/assem-ch/gists{/gist_id}", + "starred_url": "https://api.github.com/users/assem-ch/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/assem-ch/subscriptions", + "organizations_url": "https://api.github.com/users/assem-ch/orgs", + "repos_url": "https://api.github.com/users/assem-ch/repos", + "events_url": "https://api.github.com/users/assem-ch/events{/privacy}", + "received_events_url": "https://api.github.com/users/assem-ch/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 5, + "created_at": "2016-02-29T00:47:17Z", + "updated_at": "2016-06-03T01:38:29Z", + "closed_at": null, + "body": "Assalamu aleykoum wa rahmatullahi wa barakatuh my beloved brothers.\r\nI just tried setting it up localhost and after a whole bunch of problems (there is a lot extra things that has to be installed that is not listed in your walkthrough/guide\"), I get this error:\r\n\r\n![image](https://cloud.githubusercontent.com/assets/6802820/13383200/5970f40e-de86-11e5-8e1c-6048d7df807d.png)\r\n\r\n\r\nany ideas?", + "score": 1.0350043 + }, + { + "url": "https://api.github.com/repos/jtpereyda/boofuzz/issues/39", + "repository_url": "https://api.github.com/repos/jtpereyda/boofuzz", + "labels_url": "https://api.github.com/repos/jtpereyda/boofuzz/issues/39/labels{/name}", + "comments_url": "https://api.github.com/repos/jtpereyda/boofuzz/issues/39/comments", + "events_url": "https://api.github.com/repos/jtpereyda/boofuzz/issues/39/events", + "html_url": "https://github.com/jtpereyda/boofuzz/issues/39", + "id": 137388611, + "number": 39, + "title": "Binary Install for Windows Not Applicable", + "user": { + "login": "jtpereyda", + "id": 244969, + "avatar_url": "https://avatars.githubusercontent.com/u/244969?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jtpereyda", + "html_url": "https://github.com/jtpereyda", + "followers_url": "https://api.github.com/users/jtpereyda/followers", + "following_url": "https://api.github.com/users/jtpereyda/following{/other_user}", + "gists_url": "https://api.github.com/users/jtpereyda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jtpereyda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jtpereyda/subscriptions", + "organizations_url": "https://api.github.com/users/jtpereyda/orgs", + "repos_url": "https://api.github.com/users/jtpereyda/repos", + "events_url": "https://api.github.com/users/jtpereyda/events{/privacy}", + "received_events_url": "https://api.github.com/users/jtpereyda/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jtpereyda/boofuzz/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2016-02-29T21:53:58Z", + "updated_at": "2016-02-29T21:55:10Z", + "closed_at": null, + "body": "The latest wheel doesn't have Windows binaries.\r\n\r\nThis might not be worth maintaining, in which case the quick fix is to remove the binary subsection from INSTALL.rst.", + "score": 5.4619317 + }, + { + "url": "https://api.github.com/repos/dateutil/dateutil/issues/197", + "repository_url": "https://api.github.com/repos/dateutil/dateutil", + "labels_url": "https://api.github.com/repos/dateutil/dateutil/issues/197/labels{/name}", + "comments_url": "https://api.github.com/repos/dateutil/dateutil/issues/197/comments", + "events_url": "https://api.github.com/repos/dateutil/dateutil/issues/197/events", + "html_url": "https://github.com/dateutil/dateutil/issues/197", + "id": 137565438, + "number": 197, + "title": "utcoffset crash on Windows with EPOCH and tzlocal for timezone GMT+x", + "user": { + "login": "ggtools", + "id": 547260, + "avatar_url": "https://avatars.githubusercontent.com/u/547260?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ggtools", + "html_url": "https://github.com/ggtools", + "followers_url": "https://api.github.com/users/ggtools/followers", + "following_url": "https://api.github.com/users/ggtools/following{/other_user}", + "gists_url": "https://api.github.com/users/ggtools/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ggtools/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ggtools/subscriptions", + "organizations_url": "https://api.github.com/users/ggtools/orgs", + "repos_url": "https://api.github.com/users/ggtools/repos", + "events_url": "https://api.github.com/users/ggtools/events{/privacy}", + "received_events_url": "https://api.github.com/users/ggtools/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/dateutil/dateutil/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/dateutil/dateutil/labels/time%20zones", + "name": "time zones", + "color": "c7def8" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/dateutil/dateutil/milestones/4", + "html_url": "https://github.com/dateutil/dateutil/milestones/Bugfix%20release", + "labels_url": "https://api.github.com/repos/dateutil/dateutil/milestones/4/labels", + "id": 1299444, + "number": 4, + "title": "Bugfix release", + "description": "This is a tracking milestone for an unspecified bugfix release. It indicates that a given issue or PR can be included on the next point release.", + "creator": { + "login": "pganssle", + "id": 1377457, + "avatar_url": "https://avatars.githubusercontent.com/u/1377457?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pganssle", + "html_url": "https://github.com/pganssle", + "followers_url": "https://api.github.com/users/pganssle/followers", + "following_url": "https://api.github.com/users/pganssle/following{/other_user}", + "gists_url": "https://api.github.com/users/pganssle/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pganssle/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pganssle/subscriptions", + "organizations_url": "https://api.github.com/users/pganssle/orgs", + "repos_url": "https://api.github.com/users/pganssle/repos", + "events_url": "https://api.github.com/users/pganssle/events{/privacy}", + "received_events_url": "https://api.github.com/users/pganssle/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 15, + "closed_issues": 3, + "state": "open", + "created_at": "2015-09-10T14:22:04Z", + "updated_at": "2016-05-25T22:34:44Z", + "due_on": null, + "closed_at": null + }, + "comments": 17, + "created_at": "2016-03-01T12:46:19Z", + "updated_at": "2016-03-06T15:08:36Z", + "closed_at": null, + "body": "My local time zone is Europe/Paris and I noticed that on Windows the following operation crashed:\r\n\r\n >>> datetime.fromtimestamp(0,tz.tzlocal())\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"C:\\Anaconda3\\lib\\site-packages\\dateutil\\tz.py\", line 99, in utcoffset\r\n if self._isdst(dt):\r\n File \"C:\\Anaconda3\\lib\\site-packages\\dateutil\\tz.py\", line 143, in _isdst\r\n return time.localtime(timestamp+time.timezone).tm_isdst\r\n OSError: [Errno 22] Invalid argument\r\n\r\nThe same on Linux is working fine.\r\n\r\nLooking at the code I discovered that the issue is caused by the call to `time.localtime()` with `-3600` as argument. This is working fine on Linux but not on Windows.", + "score": 2.3784502 + }, + { + "url": "https://api.github.com/repos/conda/conda/issues/2152", + "repository_url": "https://api.github.com/repos/conda/conda", + "labels_url": "https://api.github.com/repos/conda/conda/issues/2152/labels{/name}", + "comments_url": "https://api.github.com/repos/conda/conda/issues/2152/comments", + "events_url": "https://api.github.com/repos/conda/conda/issues/2152/events", + "html_url": "https://github.com/conda/conda/issues/2152", + "id": 137679298, + "number": 2152, + "title": "Cannot create environment on Windows 7 x64", + "user": { + "login": "pbowyer", + "id": 89852, + "avatar_url": "https://avatars.githubusercontent.com/u/89852?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/pbowyer", + "html_url": "https://github.com/pbowyer", + "followers_url": "https://api.github.com/users/pbowyer/followers", + "following_url": "https://api.github.com/users/pbowyer/following{/other_user}", + "gists_url": "https://api.github.com/users/pbowyer/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pbowyer/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pbowyer/subscriptions", + "organizations_url": "https://api.github.com/users/pbowyer/orgs", + "repos_url": "https://api.github.com/users/pbowyer/repos", + "events_url": "https://api.github.com/users/pbowyer/events{/privacy}", + "received_events_url": "https://api.github.com/users/pbowyer/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/conda/conda/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/conda/conda/labels/Windows", + "name": "Windows", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 3, + "created_at": "2016-03-01T20:35:00Z", + "updated_at": "2016-03-10T06:06:57Z", + "closed_at": null, + "body": "This is similar to #1936 but isn't resolved by #2083. I'm trying to create an environment - the 'root' install is working great:\r\n\r\n```\r\n$ conda create --name hotbar --file environment_win64.yml\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/affine-1.2.0-py27_0.tar.bz2\r\nFetching package metadata: .\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/bokeh-0.11.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/boto-2.39.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/click-6.3-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/cligj-0.2.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/curl-7.45.0-vc9_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/cycler-0.9.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/cython-0.23.4-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/enum34-1.1.2-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/flask-0.10.1-py27_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/futures-3.0.3-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/gdal-2.0.0-py27_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/geos-3.4.2-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/h5py-2.5.0-np110py27_4.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/hdf4-4.2.11-0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/hdf5-1.8.15.1-vc9_4.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ipykernel-4.2.2-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ipython-4.0.3-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ipython-notebook-4.0.4-py27_3.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ipython-qtconsole-4.0.1-py27_4.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ipython_genutils-0.1.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ipywidgets-4.1.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jedi-0.9.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jinja2-2.8-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jpeg-8d-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jupyter-1.0.0-py27_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jupyter_client-4.1.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jupyter_console-4.1.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/jupyter_core-4.0.6-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/kealib-1.4.5-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/krb5-1.13.2-0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/libgdal-2.0.0-vc9_2.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/libnetcdf-4.3.3.1-vc9_5.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/libpng-1.6.17-vc9_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/libsodium-1.0.3-0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/libtiff-4.0.6-vc9_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/llvmlite-0.8.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/lxml-3.5.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/markupsafe-0.23-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/matplotlib-1.5.1-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/mkl-11.3.1-0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/mkl-service-1.1.2-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/msvc_runtime-1.0.1-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/nbconvert-4.1.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/nbformat-4.0.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/nose-1.3.7-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/notebook-4.1.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/numba-0.23.1-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/numexpr-2.4.6-np110py27_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/numpy-1.10.4-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/odo-0.4.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pandas-0.17.1-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/path.py-8.1.2-py27_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/patsy-0.4.0-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pep8-1.7.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pip-8.0.2-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/proj4-4.9.1-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/py-1.4.31-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pyasn1-0.1.9-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pyparsing-2.0.3-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pyqt-4.11.4-py27_5.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pyreadline-2.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pytest-2.8.5-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/python-2.7.11-2.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/python-dateutil-2.4.2-py27_0.tar.bz2\r\nFetching: https://conda.anaconda.org/robintw/win-64/python-fmask-0.2.1-py27_1.tar.bz2\r\nFetching package metadata: .\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pytz-2015.7-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/pyzmq-15.2.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/qt-4.8.7-vc9_6.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/qtconsole-4.1.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/rasterio-0.25.0-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/requests-2.9.1-py27_0.tar.bz2\r\nFetching: https://conda.anaconda.org/robintw/win-64/rios-1.4.2-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/scikit-image-0.11.3-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/scikit-learn-0.17-np110py27_2.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/scipy-0.17.0-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/setuptools-20.1.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/sip-4.16.9-py27_2.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/six-1.10.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/snuggs-1.3.1-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/sockjs-tornado-1.0.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/ssl_match_hostname-3.4.0.2-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/statsmodels-0.6.1-np110py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/sympy-0.7.6.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/tk-8.5.18-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/tornado-4.3-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/traitlets-4.1.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/unicodecsv-0.14.1-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/werkzeug-0.11.3-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/wheel-0.29.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/xerces-c-3.1.2-vc9_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/xlrd-0.9.4-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/xlsxwriter-0.8.4-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/xlwings-0.6.4-py27_1.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/xlwt-1.0.0-py27_0.tar.bz2\r\nFetching: https://repo.continuum.io/pkgs/free/win-64/zlib-1.2.8-vc9_2.tar.bz2\r\n[ COMPLETE ]|##################################################| 100%\r\nExtracting packages ...\r\nAn unexpected error has occurred, please consider sending the | 65%\r\nfollowing traceback to the conda GitHub issue tracker at:\r\n\r\n https://github.com/conda/conda/issues\r\n\r\nInclude the output of the command 'conda info' in your report.\r\n\r\n\r\nTraceback (most recent call last):\r\n File \"C:\\Anaconda2\\Scripts\\conda-script.py\", line 4, in \r\n sys.exit(main())\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\cli\\main.py\", line 173, in main\r\n args_func(args, p)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\cli\\main.py\", line 180, in args_func\r\n args.func(args, p)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\cli\\main_create.py\", line 49, in execute\r\n install.install(args, parser, 'create')\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\cli\\install.py\", line 173, in install\r\n misc.explicit(specs, prefix)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\misc.py\", line 92, in explicit\r\n force_extract_and_link(dists, prefix, verbose=verbose)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\misc.py\", line 55, in force_extract_and_link\r\n execute_actions(actions, verbose=verbose)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\plan.py\", line 538, in execute_actions\r\n inst.execute_instructions(plan, index, verbose)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\instructions.py\", line 149, in execute_instructions\r\n cmd(state, arg)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\instructions.py\", line 63, in EXTRACT_CMD\r\n install.extract(config.pkgs_dirs[0], arg)\r\n File \"C:\\Anaconda2\\lib\\site-packages\\conda\\install.py\", line 485, in extract\r\n t.extractall(path=path)\r\n File \"C:\\Anaconda2\\lib\\tarfile.py\", line 2078, in extractall\r\n self.extract(tarinfo, path)\r\n File \"C:\\Anaconda2\\lib\\tarfile.py\", line 2115, in extract\r\n self._extract_member(tarinfo, os.path.join(path, tarinfo.name))\r\n File \"C:\\Anaconda2\\lib\\tarfile.py\", line 2191, in _extract_member\r\n self.makefile(tarinfo, targetpath)\r\n File \"C:\\Anaconda2\\lib\\tarfile.py\", line 2231, in makefile\r\n with bltn_open(targetpath, \"wb\") as target:\r\nIOError: [Errno 13] Permission denied: 'C:\\\\Anaconda2\\\\pkgs\\\\python-2.7.11-2\\\\DLLs\\\\_ctypes.pyd'\r\n```\r\n\r\nThe environment fails to create:\r\n```\r\nλ conda info --envs\r\nUsing Anaconda Cloud api site https://api.anaconda.org\r\n# conda environments:\r\n#\r\nroot * C:\\Anaconda2\r\n```\r\n\r\nAnd this is my conda install:\r\n```\r\n$ conda info\r\nUsing Anaconda Cloud api site https://api.anaconda.org\r\nCurrent conda install:\r\n\r\n platform : win-64\r\n conda version : 3.19.3\r\n conda-build version : 1.18.1\r\n python version : 2.7.11.final.0\r\n requests version : 2.9.1\r\n root environment : C:\\Anaconda2 (writable)\r\n default environment : C:\\Anaconda2\r\n envs directories : C:\\Anaconda2\\envs\r\n package cache : C:\\Anaconda2\\pkgs\r\n channel URLs : https://repo.continuum.io/pkgs/free/win-64/\r\n https://repo.continuum.io/pkgs/free/noarch/\r\n https://repo.continuum.io/pkgs/pro/win-64/\r\n https://repo.continuum.io/pkgs/pro/noarch/\r\n config file : None\r\n is foreign system : False\r\n```\r\n\r\nIs there any current work-around? The system is Windows 7 Professional.\r\n\r\nAnnoyingly, it works great for a friend on Windows 10. One difference we found is the Python version string. Mine, on Windows 7:\r\n```\r\nλ python --version\r\nPython 2.7.11 :: Anaconda 2.5.0 (64-bit)\r\n```\r\n\r\nHis on Windows 10:\r\n```\r\nPython 2.7.11 :: Continuum Analytics, Inc.\r\n```\r\nHe installed the Python 3 version of Anaconda first and then Python 2 within it; I downloaded Python2 version directly.", + "score": 3.4612155 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12513", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12513/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12513/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12513/events", + "html_url": "https://github.com/pydata/pandas/issues/12513", + "id": 137920890, + "number": 12513, + "title": "BUG: Construct DataFrame raise error if specify `dtype='datetime64[ns, UTC]'`", + "user": { + "login": "BranYang", + "id": 4443076, + "avatar_url": "https://avatars.githubusercontent.com/u/4443076?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/BranYang", + "html_url": "https://github.com/BranYang", + "followers_url": "https://api.github.com/users/BranYang/followers", + "following_url": "https://api.github.com/users/BranYang/following{/other_user}", + "gists_url": "https://api.github.com/users/BranYang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/BranYang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/BranYang/subscriptions", + "organizations_url": "https://api.github.com/users/BranYang/orgs", + "repos_url": "https://api.github.com/users/BranYang/repos", + "events_url": "https://api.github.com/users/BranYang/events{/privacy}", + "received_events_url": "https://api.github.com/users/BranYang/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Dtypes", + "name": "Dtypes", + "color": "e102d8" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Reshaping", + "name": "Reshaping", + "color": "02d7e1" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Timezones", + "name": "Timezones", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/40", + "html_url": "https://github.com/pydata/pandas/milestones/0.18.2", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/40/labels", + "id": 1639795, + "number": 40, + "title": "0.18.2", + "description": "", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 183, + "closed_issues": 208, + "state": "open", + "created_at": "2016-03-11T21:24:45Z", + "updated_at": "2016-06-21T12:43:02Z", + "due_on": "2016-06-28T04:00:00Z", + "closed_at": null + }, + "comments": 1, + "created_at": "2016-03-02T16:19:56Z", + "updated_at": "2016-04-25T15:31:31Z", + "closed_at": null, + "body": "#### Code Sample, a copy-pastable example if possible\r\n```Python\r\nimport pandas as pd\r\nimport numpy as np\r\narray_dim2 = np.arange(10).reshape((5, 2))\r\ndf = pd.DataFrame(array_dim2 , dtype='datetime64[ns, UTC]') # doesn't work\r\n```\r\nThe error:\r\n```Python\r\nTypeError Traceback (most recent call last)\r\n in ()\r\n----> 1 df = pd.DataFrame(array_dim2 , dtype='datetime64[ns, UTC]')\r\n\r\nC:\\D\\Projects\\Github\\pandas\\pandas\\core\\frame.py in __init__(self, data, index,\r\ncolumns, dtype, copy)\r\n 252 else:\r\n 253 mgr = self._init_ndarray(data, index, columns, dtype=dty\r\npe,\r\n--> 254 copy=copy)\r\n 255 elif isinstance(data, (list, types.GeneratorType)):\r\n 256 if isinstance(data, types.GeneratorType):\r\n\r\nC:\\D\\Projects\\Github\\pandas\\pandas\\core\\frame.py in _init_ndarray(self, values,\r\nindex, columns, dtype, copy)\r\n 412\r\n 413 if dtype is not None:\r\n--> 414 if values.dtype != dtype:\r\n 415 try:\r\n 416 values = values.astype(dtype)\r\n\r\nTypeError: data type not understood\r\n```\r\n#### Expected Output\r\n```Python\r\nIn [5]: df = pd.DataFrame(array_dim2 , dtype='datetime64[ns, UTC]')\r\n\r\nIn [6]: df\r\nOut[6]:\r\n 0 1\r\n0 1970-01-01 00:00:00.000000000+00:00 1970-01-01 00:00:00.000000001+00:00\r\n1 1970-01-01 00:00:00.000000002+00:00 1970-01-01 00:00:00.000000003+00:00\r\n2 1970-01-01 00:00:00.000000004+00:00 1970-01-01 00:00:00.000000005+00:00\r\n3 1970-01-01 00:00:00.000000006+00:00 1970-01-01 00:00:00.000000007+00:00\r\n4 1970-01-01 00:00:00.000000008+00:00 1970-01-01 00:00:00.000000009+00:00\r\n```\r\n\r\n#### output of ``pd.show_versions()``\r\n```\r\npython: 3.5.1.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.18.0rc1+66.gce3ac93\r\nnose: 1.3.7\r\npip: 8.0.2\r\nsetuptools: 19.2\r\nCython: 0.23.4\r\nnumpy: 1.10.1\r\nscipy: None\r\nstatsmodels: None\r\nxarray: None\r\nIPython: 4.0.2\r\nsphinx: 1.3.1\r\npatsy: None\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: None\r\ntables: None\r\nnumexpr: None\r\nmatplotlib: 1.5.1\r\nopenpyxl: 2.3.3\r\nxlrd: 0.9.4\r\nxlwt: 1.0.0\r\nxlsxwriter: None\r\nlxml: 3.5.0\r\nbs4: 4.4.1\r\nhtml5lib: 0.999\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: None\r\npymysql: None\r\npsycopg2: None\r\njinja2: 2.8\r\n```\r\n\r\n", + "score": 0.60987943 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12519", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12519/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12519/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12519/events", + "html_url": "https://github.com/pydata/pandas/issues/12519", + "id": 138174318, + "number": 12519, + "title": "Read CSV error_bad_lines does not error for too many values in first data row", + "user": { + "login": "jarekszymczak", + "id": 15443994, + "avatar_url": "https://avatars.githubusercontent.com/u/15443994?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jarekszymczak", + "html_url": "https://github.com/jarekszymczak", + "followers_url": "https://api.github.com/users/jarekszymczak/followers", + "following_url": "https://api.github.com/users/jarekszymczak/following{/other_user}", + "gists_url": "https://api.github.com/users/jarekszymczak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jarekszymczak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jarekszymczak/subscriptions", + "organizations_url": "https://api.github.com/users/jarekszymczak/orgs", + "repos_url": "https://api.github.com/users/jarekszymczak/repos", + "events_url": "https://api.github.com/users/jarekszymczak/events{/privacy}", + "received_events_url": "https://api.github.com/users/jarekszymczak/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/CSV", + "name": "CSV", + "color": "5319e7" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 4, + "created_at": "2016-03-03T13:13:37Z", + "updated_at": "2016-06-03T11:06:05Z", + "closed_at": null, + "body": "Hi, I would like to report an unexpected behaviour connected with option error_bad_lines (I just reference this for make it easier to find this bug if someone was to report the same).\r\n\r\nGiven the following two CSV files:\r\nsimple.csv\r\n```\r\nCol1,Col2\r\n4,Here\r\n5,7,Invalid\r\n8,Row\r\n9,Does\r\n10,Break\r\n```\r\n\r\nsimple2.csv\r\n```\r\nCol1,Col2\r\n5,7,Invalid\r\n4,Row\r\n8,Does\r\n9,Not\r\n10,Break\r\n```\r\n\r\nThe following code breaks, as expected:\r\n```\r\ndf = pd.read_csv('simple.csv')\r\n```\r\n\r\nThe fact that the following code does not break is up to discussion (though it is inconsistent depending on whether an error is in first row or futher ones):\r\n```\r\ndf2 = pd.read_csv('simple2.csv')\r\n```\r\n\r\nAs the index is read as the first column and hence it comes down to another potential issue reported (ragarding erroring on too few values), so I am not going into this here.\r\n\r\nSo the result is as follows:\r\n```\r\n\tCol1\t\tCol2\r\n5\t7\t\tInvalid\r\n4\tRow\t\tNaN\r\n8\tDoes\tNaN\r\n9\tNot\t\tNaN\r\n10\tBreak\tNaN\r\n```\r\n\r\nHowever even if I specify explicitly, that there is no index in CSV:\r\n```\r\ndf3 = pd.read_csv('simple2.csv', index_col=False)\r\n```\r\n\r\nIt still works, yielding the result:\r\n```\r\n\tCol1 \tCol2\r\n0\t5 \t\t7\r\n1\t4 \t\tRow\r\n2\t8\t\tDoes\r\n3\t9\t\tNot\r\n4\t10\t\tBreak\r\n```\r\n\r\nAnd this is definitely a bug I believe. I discovered it by accident, as in CSV that I was about to read comma was used also as decimal separator in first column and the totally corrupted CSV ended up read and parsed as DataFrame.\r\n#### output of ``pd.show_versions()``\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 3.5.1.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.17.1\r\nnose: 1.3.7\r\npip: 8.0.3\r\nsetuptools: 20.1.1\r\nCython: 0.23.4\r\nnumpy: 1.10.1\r\nscipy: 0.16.0\r\nstatsmodels: 0.6.1\r\nIPython: 4.0.1\r\nsphinx: 1.3.1\r\npatsy: 0.4.0\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: 1.0.0\r\ntables: 3.2.2\r\nnumexpr: 2.4.4\r\nmatplotlib: 1.5.0\r\nopenpyxl: 2.2.6\r\nxlrd: 0.9.4\r\nxlwt: 1.0.0\r\nxlsxwriter: 0.7.7\r\nlxml: 3.4.4\r\nbs4: 4.4.1\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.9\r\npymysql: None\r\npsycopg2: None\r\nJinja2: 2.8\r\n", + "score": 0.66191256 + }, + { + "url": "https://api.github.com/repos/mkdocs/mkdocs/issues/859", + "repository_url": "https://api.github.com/repos/mkdocs/mkdocs", + "labels_url": "https://api.github.com/repos/mkdocs/mkdocs/issues/859/labels{/name}", + "comments_url": "https://api.github.com/repos/mkdocs/mkdocs/issues/859/comments", + "events_url": "https://api.github.com/repos/mkdocs/mkdocs/issues/859/events", + "html_url": "https://github.com/mkdocs/mkdocs/issues/859", + "id": 138296417, + "number": 859, + "title": "Large search indexes can cause Lunr to freeze the page while it creates the index.", + "user": { + "login": "sashadt", + "id": 4966983, + "avatar_url": "https://avatars.githubusercontent.com/u/4966983?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sashadt", + "html_url": "https://github.com/sashadt", + "followers_url": "https://api.github.com/users/sashadt/followers", + "following_url": "https://api.github.com/users/sashadt/following{/other_user}", + "gists_url": "https://api.github.com/users/sashadt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sashadt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sashadt/subscriptions", + "organizations_url": "https://api.github.com/users/sashadt/orgs", + "repos_url": "https://api.github.com/users/sashadt/repos", + "events_url": "https://api.github.com/users/sashadt/events{/privacy}", + "received_events_url": "https://api.github.com/users/sashadt/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/mkdocs/mkdocs/labels/Bug", + "name": "Bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 46, + "created_at": "2016-03-03T21:03:24Z", + "updated_at": "2016-06-10T01:51:30Z", + "closed_at": null, + "body": "When using readthedocs theme, search shows \"no results\" for a few seconds while search is being performed, and then results are loaded. However, few seconds are enough to convince the users nothing is found, and they move on.\r\n\r\nFor example see: http://docs.datatorrent.com Try searching for \"test\" and you will see the following for a while:\r\n\r\n![image](https://cloud.githubusercontent.com/assets/4966983/13509416/2605d938-e140-11e5-9a6b-6ef8446212cc.png)\r\n\r\n\r\nPerhaps an indicator of search in progress can be added?\r\n\r\n", + "score": 0.32761815 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12565", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12565/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12565/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12565/events", + "html_url": "https://github.com/pydata/pandas/issues/12565", + "id": 139431555, + "number": 12565, + "title": "BUG?: secondary_y is unaltered by fontsize parameter", + "user": { + "login": "scotthounsell", + "id": 9099192, + "avatar_url": "https://avatars.githubusercontent.com/u/9099192?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/scotthounsell", + "html_url": "https://github.com/scotthounsell", + "followers_url": "https://api.github.com/users/scotthounsell/followers", + "following_url": "https://api.github.com/users/scotthounsell/following{/other_user}", + "gists_url": "https://api.github.com/users/scotthounsell/gists{/gist_id}", + "starred_url": "https://api.github.com/users/scotthounsell/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/scotthounsell/subscriptions", + "organizations_url": "https://api.github.com/users/scotthounsell/orgs", + "repos_url": "https://api.github.com/users/scotthounsell/repos", + "events_url": "https://api.github.com/users/scotthounsell/events{/privacy}", + "received_events_url": "https://api.github.com/users/scotthounsell/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Novice", + "name": "Difficulty Novice", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Visualization", + "name": "Visualization", + "color": "8AE234" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 1, + "created_at": "2016-03-09T00:01:38Z", + "updated_at": "2016-04-25T15:34:45Z", + "closed_at": null, + "body": "Hi,\r\n\r\nI have found that fontsize is ignored on the secondary_y axis in DataFrame.plot in version 17.1. Is this by intention? (Apologies, if this is the wrong place to ask this or if it has already been asked as I was unable to find it.)\r\n\r\nThanks!\r\n\r\nExample:\r\n```python\r\n>>> import pandas as pd, numpy as np, matplotlib.pyplot as plt\r\n>>> x = pd.DataFrame(np.random.randn(100,2), columns=list('AB')).assign(C = lambda df: df.B.cumsum())\r\n>>> x.plot(secondary_y='C', fontsize=20).legend(fontsize=16)\r\n\r\n>>> plt.show() # Righthand y axis remains small\r\n```\r\nHere are my package versions:\r\n```python\r\n>>> pd.show_versions()\r\n\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 2.7.9.final.0\r\npython-bits: 32\r\nOS: Windows\r\nOS-release: 8\r\nmachine: AMD64\r\nprocessor: AMD64 Family 21 Model 16 Stepping 1, AuthenticAMD\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.17.1\r\nnose: None\r\npip: 1.5.6\r\nsetuptools: 7.0\r\nCython: None\r\nnumpy: 1.9.3\r\nscipy: 0.16.0\r\nstatsmodels: None\r\nIPython: None\r\nsphinx: None\r\npatsy: None\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: None\r\ntables: None\r\nnumexpr: None\r\nmatplotlib: 1.5.0\r\nopenpyxl: None\r\nxlrd: 0.9.4\r\nxlwt: None\r\nxlsxwriter: None\r\nlxml: None\r\nbs4: None\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: None\r\npymysql: None\r\npsycopg2: None\r\nJinja2: None\r\n```", + "score": 0.8182873 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12652", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12652/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12652/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12652/events", + "html_url": "https://github.com/pydata/pandas/issues/12652", + "id": 141466570, + "number": 12652, + "title": "DataFrame Groupby Apply Returning Unexpected Result?", + "user": { + "login": "jaradc", + "id": 12854767, + "avatar_url": "https://avatars.githubusercontent.com/u/12854767?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jaradc", + "html_url": "https://github.com/jaradc", + "followers_url": "https://api.github.com/users/jaradc/followers", + "following_url": "https://api.github.com/users/jaradc/following{/other_user}", + "gists_url": "https://api.github.com/users/jaradc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jaradc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jaradc/subscriptions", + "organizations_url": "https://api.github.com/users/jaradc/orgs", + "repos_url": "https://api.github.com/users/jaradc/repos", + "events_url": "https://api.github.com/users/jaradc/events{/privacy}", + "received_events_url": "https://api.github.com/users/jaradc/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Groupby", + "name": "Groupby", + "color": "729FCF" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Usage%20Question", + "name": "Usage Question", + "color": "0052cc" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/40", + "html_url": "https://github.com/pydata/pandas/milestones/0.18.2", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/40/labels", + "id": 1639795, + "number": 40, + "title": "0.18.2", + "description": "", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 183, + "closed_issues": 208, + "state": "open", + "created_at": "2016-03-11T21:24:45Z", + "updated_at": "2016-06-21T12:43:02Z", + "due_on": "2016-06-28T04:00:00Z", + "closed_at": null + }, + "comments": 3, + "created_at": "2016-03-17T03:06:59Z", + "updated_at": "2016-04-26T15:10:03Z", + "closed_at": null, + "body": "Why doesn't applying the `addColumn` function to a `DataFrameGroupby` object return the expected output below?\r\n\r\n#### Code Sample, a copy-pasteable example if possible\r\n```\r\nimport pandas as pd\r\n\r\ndf = pd.DataFrame({\r\n ('C', 'julian'): [0.258185, 0.52591899999999991, 0.17491099999999998, 0.94083099999999997, 0.70193700000000003, 0.189361, 0.90364500000000003, 0.56848199999999993, 0.44919799999999993, 0.39054899999999998],\r\n ('B', 'geoffrey'): [0.27970200000000001, 0.54119799999999996, 0.36436499999999999, 0.73802900000000005, 0.85527000000000009, 0.37441099999999999, 0.87378500000000003, 0.062140000000000001, 0.008404, 0.171458], \r\n ('A', 'julian'): [0.20408199999999999, 0.263235, 0.196243, 0.52878500000000006, 0.85351699999999997, 0.23979699999999998, 0.98073399999999999, 0.59194199999999997, 0.81816699999999998, 0.21742399999999998], \r\n ('B', 'julian'): [0.79572500000000002, 0.507324, 0.65340799999999999, 0.65416000000000007, 0.803087, 0.94354400000000005, 0.85009699999999988, 0.56629799999999997, 0.28205000000000002, 0.47193299999999999], \r\n ('A', 'geoffrey'): [0.073676000000000005, 0.096733, 0.028613, 0.831569, 0.26324999999999998, 0.069519000000000011, 0.29041400000000001, 0.088387000000000007, 0.061483000000000003, 0.42760200000000004], \r\n ('C', 'geoffrey'): [0.25811200000000001, 0.75765199999999999, 0.92473300000000003, 0.29447299999999998, 0.26469799999999999, 0.84664699999999993, 0.11871300000000001, 0.87206399999999995, 0.65837000000000001, 0.23442600000000002]},\r\n columns=pd.MultiIndex.from_tuples([('A','julian'),('A','geoffrey'), ('B','julian'),('B','geoffrey'), ('C','julian'),('C','geoffrey')]))\r\n\r\ndef addColumn(grouped):\r\n name = grouped.columns[0][1]\r\n grouped['sum', name] = grouped.sum(axis=1)\r\n #print(grouped)\r\n return grouped\r\n\r\nresult = df.groupby(level=1, axis=1).apply(addColumn)\r\n```\r\n\r\n#### Expected Output\r\n```\r\n A B C sum A B C sum \r\n geoffrey geoffrey geoffrey geoffrey julian julian julian julian \r\n0 0.073676 0.279702 0.258112 0.611491 0.204082 0.795725 0.258185 1.257992 \r\n1 0.096733 0.541198 0.757652 1.395584 0.263235 0.507324 0.525919 1.296478 \r\n2 0.028613 0.364365 0.924733 1.317710 0.196243 0.653408 0.174911 1.024561 \r\n3 0.831569 0.738029 0.294473 1.864071 0.528785 0.654160 0.940831 2.123776 \r\n4 0.263250 0.855270 0.264698 1.383219 0.853517 0.803087 0.701937 2.358542 \r\n5 0.069519 0.374411 0.846647 1.290578 0.239797 0.943544 0.189361 1.372703 \r\n6 0.290414 0.873785 0.118713 1.282912 0.980734 0.850097 0.903645 2.734476 \r\n7 0.088387 0.062140 0.872064 1.022590 0.591942 0.566298 0.568482 1.726721 \r\n8 0.061483 0.008404 0.658370 0.728257 0.818167 0.282050 0.449198 1.549415 \r\n9 0.427602 0.171458 0.234426 0.833486 0.217424 0.471933 0.390549 1.079906 \r\n```\r\n\r\n#### output of ``pd.show_versions()``\r\n\r\n> INSTALLED VERSIONS\r\n> ------------------\r\n> commit: None\r\n> python: 3.4.2.final.0\r\n> python-bits: 64\r\n> OS: Windows\r\n> OS-release: 7\r\n> machine: AMD64\r\n> processor: Intel64 Family 6 Model 42 Stepping 7, GenuineIntel\r\n> byteorder: little\r\n> LC_ALL: None\r\n> LANG: None\r\n> \r\n> pandas: 0.17.1\r\n> nose: None\r\n> pip: None\r\n> setuptools: 15.0\r\n> Cython: 0.22\r\n> numpy: 1.9.3\r\n> scipy: 0.16.0c1\r\n> statsmodels: 0.6.1\r\n> IPython: 4.0.0\r\n> sphinx: None\r\n> patsy: 0.4.0\r\n> dateutil: 2.4.2\r\n> pytz: 2015.2\r\n> blosc: None\r\n> bottleneck: None\r\n> tables: None\r\n> numexpr: None\r\n> matplotlib: 1.4.3\r\n> openpyxl: 1.8.6\r\n> xlrd: 0.9.3\r\n> xlwt: None\r\n> xlsxwriter: 0.7.3\r\n> lxml: 3.4.2\r\n> bs4: 4.1.0\r\n> html5lib: 0.999\r\n> httplib2: 0.9.1\r\n> apiclient: None\r\n> sqlalchemy: None\r\n> pymysql: None\r\n> psycopg2: None\r\n> Jinja2: 2.8", + "score": 0.51698595 + }, + { + "url": "https://api.github.com/repos/nicolargo/glances/issues/815", + "repository_url": "https://api.github.com/repos/nicolargo/glances", + "labels_url": "https://api.github.com/repos/nicolargo/glances/issues/815/labels{/name}", + "comments_url": "https://api.github.com/repos/nicolargo/glances/issues/815/comments", + "events_url": "https://api.github.com/repos/nicolargo/glances/issues/815/events", + "html_url": "https://github.com/nicolargo/glances/issues/815", + "id": 141530554, + "number": 815, + "title": "[WebUI] Glances will not get past loading screen - Windows Server 2012", + "user": { + "login": "jjbrunton", + "id": 8502823, + "avatar_url": "https://avatars.githubusercontent.com/u/8502823?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jjbrunton", + "html_url": "https://github.com/jjbrunton", + "followers_url": "https://api.github.com/users/jjbrunton/followers", + "following_url": "https://api.github.com/users/jjbrunton/following{/other_user}", + "gists_url": "https://api.github.com/users/jjbrunton/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jjbrunton/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jjbrunton/subscriptions", + "organizations_url": "https://api.github.com/users/jjbrunton/orgs", + "repos_url": "https://api.github.com/users/jjbrunton/repos", + "events_url": "https://api.github.com/users/jjbrunton/events{/privacy}", + "received_events_url": "https://api.github.com/users/jjbrunton/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/nicolargo/glances/labels/bug", + "name": "bug", + "color": "e10c02" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/nicolargo/glances/milestones/25", + "html_url": "https://github.com/nicolargo/glances/milestones/2.7", + "labels_url": "https://api.github.com/repos/nicolargo/glances/milestones/25/labels", + "id": 1650430, + "number": 25, + "title": "2.7", + "description": "", + "creator": { + "login": "nicolargo", + "id": 776747, + "avatar_url": "https://avatars.githubusercontent.com/u/776747?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/nicolargo", + "html_url": "https://github.com/nicolargo", + "followers_url": "https://api.github.com/users/nicolargo/followers", + "following_url": "https://api.github.com/users/nicolargo/following{/other_user}", + "gists_url": "https://api.github.com/users/nicolargo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nicolargo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nicolargo/subscriptions", + "organizations_url": "https://api.github.com/users/nicolargo/orgs", + "repos_url": "https://api.github.com/users/nicolargo/repos", + "events_url": "https://api.github.com/users/nicolargo/events{/privacy}", + "received_events_url": "https://api.github.com/users/nicolargo/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 16, + "closed_issues": 23, + "state": "open", + "created_at": "2016-03-17T08:02:40Z", + "updated_at": "2016-06-10T15:31:32Z", + "due_on": "2016-08-31T22:00:00Z", + "closed_at": null + }, + "comments": 26, + "created_at": "2016-03-17T09:45:21Z", + "updated_at": "2016-05-22T08:40:37Z", + "closed_at": null, + "body": "http://localhost:61208/api/2/all\r\n\r\nreturns\r\n\r\nCannot get stats ('utf8' codec can't decode byte 0xb5 in position 0: invalid start byte)", + "score": 2.5761633 + }, + { + "url": "https://api.github.com/repos/timofurrer/try/issues/2", + "repository_url": "https://api.github.com/repos/timofurrer/try", + "labels_url": "https://api.github.com/repos/timofurrer/try/issues/2/labels{/name}", + "comments_url": "https://api.github.com/repos/timofurrer/try/issues/2/comments", + "events_url": "https://api.github.com/repos/timofurrer/try/issues/2/events", + "html_url": "https://github.com/timofurrer/try/issues/2", + "id": 142412679, + "number": 2, + "title": "The executable python3.5 (from --python=python3.5) does not exist", + "user": { + "login": "tomsitter", + "id": 2029528, + "avatar_url": "https://avatars.githubusercontent.com/u/2029528?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tomsitter", + "html_url": "https://github.com/tomsitter", + "followers_url": "https://api.github.com/users/tomsitter/followers", + "following_url": "https://api.github.com/users/tomsitter/following{/other_user}", + "gists_url": "https://api.github.com/users/tomsitter/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tomsitter/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tomsitter/subscriptions", + "organizations_url": "https://api.github.com/users/tomsitter/orgs", + "repos_url": "https://api.github.com/users/tomsitter/repos", + "events_url": "https://api.github.com/users/tomsitter/events{/privacy}", + "received_events_url": "https://api.github.com/users/tomsitter/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/timofurrer/try/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/timofurrer/try/labels/help-wanted", + "name": "help-wanted", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/timofurrer/try/labels/windows-support", + "name": "windows-support", + "color": "d4c5f9" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 5, + "created_at": "2016-03-21T17:11:08Z", + "updated_at": "2016-03-29T23:54:39Z", + "closed_at": null, + "body": "Hey,\r\n\r\nI'm trying to run this on Windows 10. After installing via pip I'm running into a couple separate issues\r\n\r\n1) `try` is masked by Windows PowerShell's try syntax\r\n2) Running as a python m (`python -m try requests`) results in the error:\r\n`The executable python3.5 (from --python=python3.5) does not exist`\r\n\r\nI'm using Python 3.5 installed to C:\\Python35\\python.exe\r\n\r\nAny help would be great!", + "score": 1.5141281 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12690", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12690/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12690/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12690/events", + "html_url": "https://github.com/pydata/pandas/issues/12690", + "id": 142675526, + "number": 12690, + "title": "Rounding errors when parsing timedeltas", + "user": { + "login": "belteshassar", + "id": 12408997, + "avatar_url": "https://avatars.githubusercontent.com/u/12408997?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/belteshassar", + "html_url": "https://github.com/belteshassar", + "followers_url": "https://api.github.com/users/belteshassar/followers", + "following_url": "https://api.github.com/users/belteshassar/following{/other_user}", + "gists_url": "https://api.github.com/users/belteshassar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/belteshassar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/belteshassar/subscriptions", + "organizations_url": "https://api.github.com/users/belteshassar/orgs", + "repos_url": "https://api.github.com/users/belteshassar/repos", + "events_url": "https://api.github.com/users/belteshassar/events{/privacy}", + "received_events_url": "https://api.github.com/users/belteshassar/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Timedelta", + "name": "Timedelta", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/40", + "html_url": "https://github.com/pydata/pandas/milestones/0.18.2", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/40/labels", + "id": 1639795, + "number": 40, + "title": "0.18.2", + "description": "", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 183, + "closed_issues": 208, + "state": "open", + "created_at": "2016-03-11T21:24:45Z", + "updated_at": "2016-06-21T12:43:02Z", + "due_on": "2016-06-28T04:00:00Z", + "closed_at": null + }, + "comments": 1, + "created_at": "2016-03-22T14:55:15Z", + "updated_at": "2016-04-26T21:53:41Z", + "closed_at": null, + "body": "Found this while working on #12136.\r\n\r\nRounding errors occur for timedeltas initialized using fractional microsecond values:\r\n\r\n```\r\n>>> pd.Timedelta('12.312us') == pd.Timedelta(12312)\r\nFalse\r\n>>> pd.Timedelta(12.312, unit='us') == pd.Timedelta(12312)\r\nFalse\r\n>>> pd.Timedelta('12.312us') == pd.Timedelta(12311)\r\nTrue\r\n```\r\n\r\nAdditionally, precision is lost when initializing timedeltas with fractional millisecond (and probably second) values:\r\n\r\n```\r\n>>> pd.Timedelta(0.012312, unit='ms') == pd.Timedelta(12311)\r\nFalse\r\n>>> pd.Timedelta(0.012311, unit='ms') == pd.Timedelta(12311)\r\nFalse\r\n>>> pd.Timedelta(0.012311, unit='ms') == pd.Timedelta(12000)\r\nTrue\r\n```\r\n\r\nI believe the problem is here: https://github.com/pydata/pandas/blob/288059adfb751d52be57e444198198518d256c05/pandas/tslib.pyx#L3399\r\nbumping up the values of `p` should probably solve this.\r\n\r\n#### output of ``pd.show_versions()``\r\n\r\ncommit: None\r\npython: 2.7.11.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 10\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 78 Stepping 3, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0+unknown\r\nnose: 1.3.7\r\npip: 8.1.0\r\nsetuptools: 20.2.2\r\nCython: 0.23.4\r\nnumpy: 1.10.4\r\nscipy: 0.17.0\r\nstatsmodels: None\r\nxarray: None\r\nIPython: 4.1.2\r\nsphinx: 1.3.5\r\npatsy: 0.4.0\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: 1.0.0\r\ntables: 3.2.2\r\nnumexpr: 2.4.6\r\nmatplotlib: 1.5.1\r\nopenpyxl: 2.3.2\r\nxlrd: 0.9.4\r\nxlwt: 1.0.0\r\nxlsxwriter: 0.8.4\r\nlxml: 3.5.0\r\nbs4: 4.3.2\r\nhtml5lib: 0.999\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.12\r\npymysql: 0.6.7.None\r\npsycopg2: None\r\njinja2: 2.8\r\nboto: None\r\n", + "score": 0.7290506 + }, + { + "url": "https://api.github.com/repos/pypa/pip/issues/3604", + "repository_url": "https://api.github.com/repos/pypa/pip", + "labels_url": "https://api.github.com/repos/pypa/pip/issues/3604/labels{/name}", + "comments_url": "https://api.github.com/repos/pypa/pip/issues/3604/comments", + "events_url": "https://api.github.com/repos/pypa/pip/issues/3604/events", + "html_url": "https://github.com/pypa/pip/issues/3604", + "id": 145951815, + "number": 3604, + "title": "Pip throws exception on Cyrillic character in module description", + "user": { + "login": "EdBrereton", + "id": 1326060, + "avatar_url": "https://avatars.githubusercontent.com/u/1326060?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/EdBrereton", + "html_url": "https://github.com/EdBrereton", + "followers_url": "https://api.github.com/users/EdBrereton/followers", + "following_url": "https://api.github.com/users/EdBrereton/following{/other_user}", + "gists_url": "https://api.github.com/users/EdBrereton/gists{/gist_id}", + "starred_url": "https://api.github.com/users/EdBrereton/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/EdBrereton/subscriptions", + "organizations_url": "https://api.github.com/users/EdBrereton/orgs", + "repos_url": "https://api.github.com/users/EdBrereton/repos", + "events_url": "https://api.github.com/users/EdBrereton/events{/privacy}", + "received_events_url": "https://api.github.com/users/EdBrereton/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pypa/pip/labels/bug", + "name": "bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/encoding", + "name": "encoding", + "color": "0052cc" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/search", + "name": "search", + "color": "0052cc" + }, + { + "url": "https://api.github.com/repos/pypa/pip/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2016-04-05T10:42:36Z", + "updated_at": "2016-04-06T10:38:33Z", + "closed_at": null, + "body": "* Pip version: 8.1.1\r\n* Python version: 3.5.1\r\n* Operating System: Windows 10 64 bit\r\n\r\n### Description:\r\n\r\nAttempting to use the command `pip search vcard_split` in powershell results in an exception being presented to user. This appears to be caused by Cyrillic characters in the module description. This also occurs in other searches where this module is returned as a result (i.e. `pip search gmail`)\r\n \r\n\r\n### What I've run:\r\n\r\n```\r\nPS C:\\Users\\edward.brereton> pip search vcard_split\r\n--- Logging error ---\r\nTraceback (most recent call last):\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\logging\\__init__.py\", line 982, in emit\r\n stream.write(msg)\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\_vendor\\colorama\\ansitowin32.py\", line 137, in write\r\n self.write_and_convert(text)\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\_vendor\\colorama\\ansitowin32.py\", line 165, in write_and_convert\r\n self.write_plain_text(text, cursor, len(text))\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\_vendor\\colorama\\ansitowin32.py\", line 170, in write_plain_text\r\n self.wrapped.write(text[start:end])\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\encodings\\cp850.py\", line 19, in encode\r\n return codecs.charmap_encode(input,self.errors,encoding_map)[0]\r\nUnicodeEncodeError: 'charmap' codec can't encode characters in position 398-407: character maps to \r\nCall stack:\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\runpy.py\", line 170, in _run_module_as_main\r\n \"__main__\", mod_spec)\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\runpy.py\", line 85, in _run_code\r\n exec(code, run_globals)\r\n File \"C:\\Users\\edward.brereton\\AppData\\Local\\Programs\\Python\\Python35\\Scripts\\pip.exe\\__main__.py\", line 9, in \r\n sys.exit(main())\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\__init__.py\", line 217, in main\r\n return command.main(cmd_args)\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\basecommand.py\", line 209, in main\r\n status = self.run(options, args)\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\commands\\search.py\", line 50, in run\r\n print_results(hits, terminal_width=terminal_width)\r\n File \"c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\pip\\commands\\search.py\", line 129, in print_results\r\n logger.info(line)\r\nMessage: 'vcard_split (0.2dev-r2010) - Splits one vcard file (*.vcf) to many vcard\\n files with one vcard per file. Useful for\\n import contacts to phones, thats do not\\n support multiple vcard in one file.\\n Supprt unicode cyrillic characters.\\n \\u041a\\u043e\\u043d\\u0441\\u043e\\u043b\\u044c\\u043d\\u0430\\u044f \\u043f\\u0440\\u043e\\u0433\\u0440\\u0430\\u043c\\u043c\\u0430 \\u0434\\u043b\\u044f \\u0440\\u0430\\u0437\\u0431\\u0438\\u0435\\u043d\\u0438\\u044f \\u043e\\u0434\\u043d\\u043e\\u0433\\u043e\\n \\u0431\\u043e\\u043b\\u044c\\u0448\\u043b\\u0433\\u043e \\u0444\\u0430\\u0439\\u043b\\u0430 \\u0441 \\u043a\\u043e\\u043d\\u0442\\u0430\\u043a\\u0442\\u0430\\u043c\\u0438 \\u0432 \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0435 VCARD\\n (*.vcf) \\u043d\\u0430 \\u043d\\u0435\\u0441\\u043a\\u043e\\u043b\\u044c\\u043a\\u043e \\u0444\\u0430\\u0439\\u043b\\u043e\\u0432 \\u0441\\u043e\\u0434\\u0435\\u0440\\u0436\\u0430\\u0449\\u0438\\u0445\\n \\u043e\\u0434\\u0438\\u043d \\u043a\\u043e\\u043d\\u0442\\u0430\\u043a\\u0442. \\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u0430 \\u0434\\u043b\\u044f \\u0438\\u043c\\u043f\\u043e\\u0440\\u0442\\u0430 \\u043a\\u043e\\u043d\\u0442\\u0430\\u043a\\u0442\\u043e\\u0432 \\u0432\\n \\u0442\\u0435\\u043b\\u0435\\u0444\\u043e\\u043d, \\u043a\\u043e\\u0442\\u043e\\u0440\\u044b\\u0439 \\u043d\\u0435 \\u043f\\u043e\\u0434\\u0434\\u0435\\u0440\\u0436\\u0438\\u0432\\u0430\\u0435\\u0442\\n \\u043d\\u0435\\u0441\\u043a\\u043e\\u043b\\u044c\\u043a\\u043e \\u043a\\u043e\\u043d\\u0442\\u0430\\u043a\\u0442\\u043e\\u0432 \\u0432 \\u043e\\u0434\\u043d\\u043e\\u043c \\u0444\\u0430\\u0439\\u043b\\u0435. \\u041f\\u043e\\u0434\\u0434\\u0435\\u0440\\u0436\\u0438\\u0432\\u0430\\u0435\\u0442\\n \\u0440\\u0443\\u0441\\u0441\\u043a\\u0438\\u0435 \\u0431\\u0443\\u043a\\u0432\\u044b \\u043a\\u0438\\u0440\\u0438\\u043b\\u043b\\u0438\\u0446\\u0443 \\u0432 \\u0442\\u0435\\u043a\\u0441\\u0442\\u0435 \\u043a\\u043e\\u043d\\u0442\\u0430\\u043a\\u0442\\u043e\\u0432.\\n \\u0420\\u0430\\u0431\\u043e\\u0442\\u043e\\u0441\\u043f\\u043e\\u0441\\u043e\\u0431\\u043d\\u043e\\u0441\\u0442\\u044c \\u043f\\u0440\\u043e\\u0432\\u0435\\u0440\\u044f\\u043b\\u0430\\u0441\\u044c \\u043d\\u0430 \\u0444\\u0430\\u0439\\u043b\\u0435 \\u0441\\n \\u043a\\u043e\\u043d\\u0442\\u0430\\u043a\\u0442\\u0430\\u043c\\u0438 \\u044d\\u043a\\u0441\\u043f\\u043e\\u0440\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u044b\\u043c\\u0438 \\u0438\\u0437 google\\n gmail.com. \\u0423\\u0441\\u0442\\u0430\\u043d\\u043e\\u0432\\u043a\\u0430 \\u0432\\u0430\\u0440\\u0438\\u0430\\u043d\\u0442 1: \\u0441\\u043a\\u0430\\u0447\\u0430\\u0442\\u044c,\\n \\u0440\\u0430\\u0441\\u043f\\u0430\\u043a\\u043e\\u0432\\u0430\\u0442\\u044c, \\u0432 \\u043f\\u0430\\u043f\\u043a\\u0435 \\u0437\\u0430\\u043f\\u0443\\u0441\\u0442\\u0438\\u0442\\u044c \"python setup.py\\n install\". \\u0418\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435 \\u0432\\u0430\\u0440\\u0438\\u0430\\u043d\\u0442 1:\\n python vcard_split.py [-h] [-l LOG_LEVEL] [-d]\\n filename [filename ...] \\u043d\\u0430\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440 \"python\\n vcard_split.py contacts.vcf\" \\u0423\\u0441\\u0442\\u0430\\u043d\\u043e\\u0432\\u043a\\u0430\\n \\u0432\\u0430\\u0440\\u0438\\u0430\\u043d\\u0442 2: \"easy_install -U vcard_split\".\\n \\u0418\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435 \\u0432\\u0430\\u0440\\u0438\\u0430\\u043d\\u0442 2: vcard_split [-h] [-l\\n LOG_LEVEL] [-d] filename [filename ...] \\u043d\\u0430\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\n \"vcard_split contacts.vcf\"'\r\nArguments: ()\r\nPS C:\\Users\\edward.brereton> pip --version\r\npip 8.1.1 from c:\\users\\edward.brereton\\appdata\\local\\programs\\python\\python35\\lib\\site-packages (python 3.5)\r\nPS C:\\Users\\edward.brereton> python --version\r\nPython 3.5.1\r\n```\r\n", + "score": 6.531528 + }, + { + "url": "https://api.github.com/repos/kwikteam/klusta/issues/18", + "repository_url": "https://api.github.com/repos/kwikteam/klusta", + "labels_url": "https://api.github.com/repos/kwikteam/klusta/issues/18/labels{/name}", + "comments_url": "https://api.github.com/repos/kwikteam/klusta/issues/18/comments", + "events_url": "https://api.github.com/repos/kwikteam/klusta/issues/18/events", + "html_url": "https://github.com/kwikteam/klusta/issues/18", + "id": 146944825, + "number": 18, + "title": "error running klustaviewa on linux", + "user": { + "login": "salazarr", + "id": 10233443, + "avatar_url": "https://avatars.githubusercontent.com/u/10233443?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/salazarr", + "html_url": "https://github.com/salazarr", + "followers_url": "https://api.github.com/users/salazarr/followers", + "following_url": "https://api.github.com/users/salazarr/following{/other_user}", + "gists_url": "https://api.github.com/users/salazarr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/salazarr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/salazarr/subscriptions", + "organizations_url": "https://api.github.com/users/salazarr/orgs", + "repos_url": "https://api.github.com/users/salazarr/repos", + "events_url": "https://api.github.com/users/salazarr/events{/privacy}", + "received_events_url": "https://api.github.com/users/salazarr/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/kwikteam/klusta/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 15, + "created_at": "2016-04-08T14:33:12Z", + "updated_at": "2016-04-15T15:14:19Z", + "closed_at": null, + "body": "Hi \r\n\r\nI have installed klusta from the web page :\r\n\r\nhttps://github.com/kwikteam/klusta/#quick-install-guide\r\n\r\nand tried to open klustaviewa but I get the following error message:\r\n\r\nklustaviewa\r\nTraceback (most recent call last):\r\n File \"/home/mint/miniconda3/envs/klusta/bin/klustaviewa\", line 7, in \r\n from klustaviewa.scripts.runklustaviewa import main\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/klustaviewa/__init__.py\", line 44, in \r\n from kwiklib.utils import logger as log\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/kwiklib/__init__.py\", line 9, in \r\n import dataio\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/kwiklib/dataio/__init__.py\", line 4, in \r\n from kwikloader import *\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/kwiklib/dataio/kwikloader.py\", line 31, in \r\n from .experiment import Experiment\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/kwiklib/dataio/experiment.py\", line 16, in \r\n from klusta.traces.waveform import WaveformLoader, SpikeLoader\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/klusta/traces/__init__.py\", line 9, in \r\n from .spikedetekt import SpikeDetekt\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/klusta/traces/spikedetekt.py\", line 13, in \r\n from tqdm import tqdm\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/tqdm/__init__.py\", line 6, in \r\n from ._main import main\r\n File \"/home/mint/miniconda3/envs/klusta/lib/python2.7/site-packages/tqdm/_main.py\", line 3, in \r\n from docopt import docopt\r\nImportError: No module named docopt\r\n\r\n\r\nAny idea?\r\n\r\nThanks,\r\n\r\nRodrigo.\r\n\r\n", + "score": 0.5379021 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12857", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12857/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12857/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12857/events", + "html_url": "https://github.com/pydata/pandas/issues/12857", + "id": 147305713, + "number": 12857, + "title": "BUG: not properly converting S1 in astype ,on PY3", + "user": { + "login": "cchrysostomou", + "id": 2927161, + "avatar_url": "https://avatars.githubusercontent.com/u/2927161?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cchrysostomou", + "html_url": "https://github.com/cchrysostomou", + "followers_url": "https://api.github.com/users/cchrysostomou/followers", + "following_url": "https://api.github.com/users/cchrysostomou/following{/other_user}", + "gists_url": "https://api.github.com/users/cchrysostomou/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cchrysostomou/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cchrysostomou/subscriptions", + "organizations_url": "https://api.github.com/users/cchrysostomou/orgs", + "repos_url": "https://api.github.com/users/cchrysostomou/repos", + "events_url": "https://api.github.com/users/cchrysostomou/events{/privacy}", + "received_events_url": "https://api.github.com/users/cchrysostomou/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Dtypes", + "name": "Dtypes", + "color": "e102d8" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Error%20Reporting", + "name": "Error Reporting", + "color": "ffa0ff" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/40", + "html_url": "https://github.com/pydata/pandas/milestones/0.18.2", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/40/labels", + "id": 1639795, + "number": 40, + "title": "0.18.2", + "description": "", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 183, + "closed_issues": 208, + "state": "open", + "created_at": "2016-03-11T21:24:45Z", + "updated_at": "2016-06-21T12:43:02Z", + "due_on": "2016-06-28T04:00:00Z", + "closed_at": null + }, + "comments": 9, + "created_at": "2016-04-11T03:25:32Z", + "updated_at": "2016-04-26T15:25:36Z", + "closed_at": null, + "body": "I am trying to create a dataframe where each cell is represented as a single characters rather than python objects. I am able to create and work with the dataframe when using .astype command. However, If i try to print out a larger portion of the table, then I get an error.\r\n\r\n#### Code Sample, a copy-pastable example if possible\r\n\r\n```\r\nimport random\r\nimport pandas as pd\r\nlets = 'ACDEFGHIJKLMNOP'\r\nslen = 50\r\nnseqs = 1000\r\nwords = [[random.choice(lets) for x in range(slen)] for _ in range(nseqs)]\r\ndf = pd.DataFrame(words).astype('S1')\r\n#this will print correctly:\r\nprint(df.iloc[:60, :])\r\n#this will raise an error:\r\nprint(df.iloc[:61, :])\r\n```\r\n\r\n#### error raised\r\n\r\n```\r\nC:\\Anaconda3\\lib\\site-packages\\pandas\\core\\internals.py in _vstack(to_stack, dtype)\r\n 4248 \r\n 4249 # work around NumPy 1.6 bug\r\n-> 4250 if dtype == _NS_DTYPE or dtype == _TD_DTYPE:\r\n 4251 new_values = np.vstack([x.view('i8') for x in to_stack])\r\n 4252 return new_values.view(dtype)\r\nTypeError: data type \"bytes8\" not understood\r\n```\r\n\r\n#### output of ``pd.show_versions()``\r\ncommit: None\r\npython: 3.4.4.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 61 Stepping 4, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.17.1\r\nnose: None\r\npip: 8.1.1\r\nsetuptools: 20.3\r\nCython: 0.23.4\r\nnumpy: 1.10.4\r\nscipy: 0.17.0\r\nstatsmodels: 0.6.1\r\nIPython: 4.1.1\r\nsphinx: 1.4b1\r\npatsy: 0.4.0\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: 1.0.0\r\ntables: 3.2.2\r\nnumexpr: 2.4.6\r\nmatplotlib: 1.5.1\r\nopenpyxl: 2.3.2\r\nxlrd: 0.9.4\r\nxlwt: 1.0.0\r\nxlsxwriter: 0.8.4\r\nlxml: 3.5.0\r\nbs4: 4.4.1\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.11\r\npymysql: None\r\npsycopg2: None\r\nJinja2: 2.8\r\n", + "score": 0.7501816 + }, + { + "url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl/issues/87", + "repository_url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl", + "labels_url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl/issues/87/labels{/name}", + "comments_url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl/issues/87/comments", + "events_url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl/issues/87/events", + "html_url": "https://github.com/NLeSC/software.esciencecenter.nl/issues/87", + "id": 147406573, + "number": 87, + "title": "estep validation error windows", + "user": { + "login": "sonjageorgievska", + "id": 12493538, + "avatar_url": "https://avatars.githubusercontent.com/u/12493538?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sonjageorgievska", + "html_url": "https://github.com/sonjageorgievska", + "followers_url": "https://api.github.com/users/sonjageorgievska/followers", + "following_url": "https://api.github.com/users/sonjageorgievska/following{/other_user}", + "gists_url": "https://api.github.com/users/sonjageorgievska/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sonjageorgievska/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sonjageorgievska/subscriptions", + "organizations_url": "https://api.github.com/users/sonjageorgievska/orgs", + "repos_url": "https://api.github.com/users/sonjageorgievska/repos", + "events_url": "https://api.github.com/users/sonjageorgievska/events{/privacy}", + "received_events_url": "https://api.github.com/users/sonjageorgievska/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/NLeSC/software.esciencecenter.nl/labels/validator", + "name": "validator", + "color": "fef2c0" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "sonjageorgievska", + "id": 12493538, + "avatar_url": "https://avatars.githubusercontent.com/u/12493538?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sonjageorgievska", + "html_url": "https://github.com/sonjageorgievska", + "followers_url": "https://api.github.com/users/sonjageorgievska/followers", + "following_url": "https://api.github.com/users/sonjageorgievska/following{/other_user}", + "gists_url": "https://api.github.com/users/sonjageorgievska/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sonjageorgievska/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sonjageorgievska/subscriptions", + "organizations_url": "https://api.github.com/users/sonjageorgievska/orgs", + "repos_url": "https://api.github.com/users/sonjageorgievska/repos", + "events_url": "https://api.github.com/users/sonjageorgievska/events{/privacy}", + "received_events_url": "https://api.github.com/users/sonjageorgievska/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 1, + "created_at": "2016-04-11T12:03:21Z", + "updated_at": "2016-04-12T10:49:25Z", + "closed_at": null, + "body": "```\r\nC:\\Users\\sonja\\Documents\\GitHub\\software.esciencecenter.nl>estep validate -v\r\nLocating local references\r\nCollection: software\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\sonja\\Anaconda3\\Scripts\\estep-script.py\", line 9, in \r\n load_entry_point('estep', 'console_scripts', 'estep')()\r\n File \"c:\\users\\sonja\\documents\\software.esciencecenter.nl\\estep\\script.py\", li\r\nne 109, in main\r\n resolve_local=not arguments['--no-local-resolve'])\r\n File \"c:\\users\\sonja\\documents\\software.esciencecenter.nl\\estep\\script.py\", li\r\nne 74, in validate\r\n for docname, document in collection.documents():\r\n File \"c:\\users\\sonja\\documents\\software.esciencecenter.nl\\estep\\script.py\", li\r\nne 41, in documents\r\n return recurseDirectory(self.directory, self.name)\r\n File \"c:\\users\\sonja\\documents\\software.esciencecenter.nl\\estep\\script.py\", li\r\nne 119, in recurseDirectory\r\n obj.append((path, jekyllfile2object(path, schemaType=schemaType)))\r\n File \"c:\\users\\sonja\\documents\\software.esciencecenter.nl\\estep\\format.py\", li\r\nne 57, in jekyllfile2object\r\n obj = jekyll2object(f.read(), contentProperty)\r\n File \"C:\\Users\\sonja\\Anaconda3\\lib\\encodings\\cp1252.py\", line 23, in decode\r\n return codecs.charmap_decode(input,self.errors,decoding_table)[0]\r\nUnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 1509: cha\r\nracter maps to \r\n```", + "score": 5.62135 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/12898", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/12898/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/12898/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/12898/events", + "html_url": "https://github.com/pydata/pandas/issues/12898", + "id": 148296232, + "number": 12898, + "title": "bugs when groupby/aggregate on columns with datetime64[ns, timezone]", + "user": { + "login": "sdementen", + "id": 1304950, + "avatar_url": "https://avatars.githubusercontent.com/u/1304950?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sdementen", + "html_url": "https://github.com/sdementen", + "followers_url": "https://api.github.com/users/sdementen/followers", + "following_url": "https://api.github.com/users/sdementen/following{/other_user}", + "gists_url": "https://api.github.com/users/sdementen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sdementen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sdementen/subscriptions", + "organizations_url": "https://api.github.com/users/sdementen/orgs", + "repos_url": "https://api.github.com/users/sdementen/repos", + "events_url": "https://api.github.com/users/sdementen/events{/privacy}", + "received_events_url": "https://api.github.com/users/sdementen/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Medium", + "name": "Effort Medium", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Groupby", + "name": "Groupby", + "color": "729FCF" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Timezones", + "name": "Timezones", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 2, + "created_at": "2016-04-14T09:00:28Z", + "updated_at": "2016-04-14T11:22:35Z", + "closed_at": null, + "body": "When aggregating a column with dtype datetime64[ns, timezone], pandas does not handle properly tz information. It looks like as if pandas was dropping the timezone info (ie doing its calculation on the UTC values) and then localizing the date to the original timezone,i.e. doing something like\r\n`column_with_UTC_dates_in_naive_format.tz_localize(timezone)`\r\ninstead of \r\n`column_with_UTC_dates_in_naive_format.tz_localize(\"UTC\").tz_convert(timezone)`\r\n\r\nThis buggy behavior is even more striking when running the sample with\r\n`idx = pandas.date_range(\"2016-03-27\", \"2016-03-29\", freq=\"H\", closed=\"left\", tz=\"Europe/Brussels\")` (cover the DST change) as the naive UTC date \"2016-03-27 03:00\" cannot be localized to the timezone as it is not recognized. In this case, the dtype of the column is not anymore datetime64[ns, timezone] but just int64.\r\n\r\n#### Code Sample, a copy-pastable example if possible\r\n```\r\n# create a DataFrame with a \"time\" column filled with localized datetime64 on hourly basis\r\nidx = pandas.date_range(\"2016-01-01\", \"2016-01-03\", freq=\"H\", closed=\"left\",tz=\"Europe/Brussels\")\r\ndf = pandas.Series(idx, index=idx, name=\"time\").to_frame()\r\n# calculate some min and max of \"time\" column per hour of the day\r\ndf_agg = df.groupby(idx.hour).aggregate([\"min\",\"max\"])\r\ndf_agg.info()\r\nprint df_agg\r\n```\r\n\r\n#### Expected Output\r\n```\r\n\r\nDatetimeIndex: 48 entries, 2016-01-01 00:00:00+01:00 to 2016-01-02 23:00:00+01:00\r\nFreq: H\r\nData columns (total 1 columns):\r\ntime 48 non-null datetime64[ns, Europe/Brussels]\r\ndtypes: datetime64[ns, Europe/Brussels](1)\r\nmemory usage: 768.0 bytes\r\n\r\nInt64Index: 24 entries, 0 to 23\r\nData columns (total 2 columns):\r\n(time, min) 24 non-null datetime64[ns, Europe/Brussels]\r\n(time, max) 24 non-null datetime64[ns, Europe/Brussels]\r\ndtypes: datetime64[ns, Europe/Brussels](2)\r\nmemory usage: 576.0 bytes\r\n time \r\n min max\r\n0 2015-12-31 23:00:00+01:00 2016-01-01 23:00:00+01:00\r\n1 2016-01-01 00:00:00+01:00 2016-01-02 00:00:00+01:00\r\n2 2016-01-01 01:00:00+01:00 2016-01-02 01:00:00+01:00\r\n3 2016-01-01 02:00:00+01:00 2016-01-02 02:00:00+01:00\r\n4 2016-01-01 03:00:00+01:00 2016-01-02 03:00:00+01:00\r\n5 2016-01-01 04:00:00+01:00 2016-01-02 04:00:00+01:00\r\n6 2016-01-01 05:00:00+01:00 2016-01-02 05:00:00+01:00\r\n7 2016-01-01 06:00:00+01:00 2016-01-02 06:00:00+01:00\r\n8 2016-01-01 07:00:00+01:00 2016-01-02 07:00:00+01:00\r\n9 2016-01-01 08:00:00+01:00 2016-01-02 08:00:00+01:00\r\n10 2016-01-01 09:00:00+01:00 2016-01-02 09:00:00+01:00\r\n11 2016-01-01 10:00:00+01:00 2016-01-02 10:00:00+01:00\r\n12 2016-01-01 11:00:00+01:00 2016-01-02 11:00:00+01:00\r\n13 2016-01-01 12:00:00+01:00 2016-01-02 12:00:00+01:00\r\n14 2016-01-01 13:00:00+01:00 2016-01-02 13:00:00+01:00\r\n15 2016-01-01 14:00:00+01:00 2016-01-02 14:00:00+01:00\r\n16 2016-01-01 15:00:00+01:00 2016-01-02 15:00:00+01:00\r\n17 2016-01-01 16:00:00+01:00 2016-01-02 16:00:00+01:00\r\n18 2016-01-01 17:00:00+01:00 2016-01-02 17:00:00+01:00\r\n19 2016-01-01 18:00:00+01:00 2016-01-02 18:00:00+01:00\r\n20 2016-01-01 19:00:00+01:00 2016-01-02 19:00:00+01:00\r\n21 2016-01-01 20:00:00+01:00 2016-01-02 20:00:00+01:00\r\n22 2016-01-01 21:00:00+01:00 2016-01-02 21:00:00+01:00\r\n23 2016-01-01 22:00:00+01:00 2016-01-02 22:00:00+01:00\r\n```\r\n\r\n#### output of ``pd.show_versions()``\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 2.7.11.final.0\r\npython-bits: 32\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 61 Stepping 4, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.18.0\r\nnose: 1.3.7\r\npip: 8.1.1\r\nsetuptools: 20.6.7\r\nCython: None\r\nnumpy: 1.10.4\r\nscipy: 0.17.0\r\nstatsmodels: 0.6.1\r\nxarray: None\r\nIPython: None\r\nsphinx: None\r\npatsy: 0.4.0\r\ndateutil: 2.5.0\r\npytz: 2016.1\r\nblosc: None\r\nbottleneck: None\r\ntables: 3.2.2\r\nnumexpr: 2.4.6\r\nmatplotlib: 1.5.1\r\nopenpyxl: 2.3.2\r\nxlrd: 0.9.4\r\nxlwt: None\r\nxlsxwriter: None\r\nlxml: None\r\nbs4: None\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.12\r\npymysql: None\r\npsycopg2: None\r\njinja2: 2.8\r\nboto: None\r\nNone\r\n\r\n", + "score": 0.42235348 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/32717", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/32717/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/32717/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/32717/events", + "html_url": "https://github.com/saltstack/salt/issues/32717", + "id": 149811075, + "number": 32717, + "title": "pycurl in salt-minion windows 2016.3.0rc2", + "user": { + "login": "emeygret", + "id": 15383526, + "avatar_url": "https://avatars.githubusercontent.com/u/15383526?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/emeygret", + "html_url": "https://github.com/emeygret", + "followers_url": "https://api.github.com/users/emeygret/followers", + "following_url": "https://api.github.com/users/emeygret/following{/other_user}", + "gists_url": "https://api.github.com/users/emeygret/gists{/gist_id}", + "starred_url": "https://api.github.com/users/emeygret/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/emeygret/subscriptions", + "organizations_url": "https://api.github.com/users/emeygret/orgs", + "repos_url": "https://api.github.com/users/emeygret/repos", + "events_url": "https://api.github.com/users/emeygret/events{/privacy}", + "received_events_url": "https://api.github.com/users/emeygret/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Fixed%20Pending%20Verification", + "name": "Fixed Pending Verification", + "color": "d4c5f9" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P3", + "name": "P3", + "color": "0a3d77" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Packaging", + "name": "Packaging", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Platform", + "name": "Platform", + "color": "fef2c0" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/TEAM%20Platform", + "name": "TEAM Platform", + "color": "A9A9A9" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Windows", + "name": "Windows", + "color": "006b75" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "twangboy", + "id": 9383935, + "avatar_url": "https://avatars.githubusercontent.com/u/9383935?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/twangboy", + "html_url": "https://github.com/twangboy", + "followers_url": "https://api.github.com/users/twangboy/followers", + "following_url": "https://api.github.com/users/twangboy/following{/other_user}", + "gists_url": "https://api.github.com/users/twangboy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/twangboy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/twangboy/subscriptions", + "organizations_url": "https://api.github.com/users/twangboy/orgs", + "repos_url": "https://api.github.com/users/twangboy/repos", + "events_url": "https://api.github.com/users/twangboy/events{/privacy}", + "received_events_url": "https://api.github.com/users/twangboy/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/82", + "html_url": "https://github.com/saltstack/salt/milestones/C%209", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/82/labels", + "id": 1783248, + "number": 82, + "title": "C 9", + "description": "", + "creator": { + "login": "meggiebot", + "id": 12242451, + "avatar_url": "https://avatars.githubusercontent.com/u/12242451?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/meggiebot", + "html_url": "https://github.com/meggiebot", + "followers_url": "https://api.github.com/users/meggiebot/followers", + "following_url": "https://api.github.com/users/meggiebot/following{/other_user}", + "gists_url": "https://api.github.com/users/meggiebot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/meggiebot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/meggiebot/subscriptions", + "organizations_url": "https://api.github.com/users/meggiebot/orgs", + "repos_url": "https://api.github.com/users/meggiebot/repos", + "events_url": "https://api.github.com/users/meggiebot/events{/privacy}", + "received_events_url": "https://api.github.com/users/meggiebot/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 22, + "state": "open", + "created_at": "2016-05-23T17:20:41Z", + "updated_at": "2016-06-13T23:25:19Z", + "due_on": "2016-06-03T06:00:00Z", + "closed_at": null + }, + "comments": 10, + "created_at": "2016-04-20T15:55:41Z", + "updated_at": "2016-05-24T21:19:14Z", + "closed_at": null, + "body": "my server is on debian jessie with last released package : 2015.8.8.2\r\nI upgrade one minion windows for this test, I don't think it is an issue.\r\n\r\nI would like to use win_pkg.install behind an http proxy, it doesn't work on 2015.8 so I would try the new option that is in 2016.3.\r\n\r\nI configure proxy_host: and proxy_port: in minion conf file (no need username and pass) \r\n\r\nand I have this error : \r\nMinionError: Error: proxy_host and proxy_port has been set. This requires pycurl, but the pycurl library does not seem to be installed reading http://www.uvnc.eu/download/1205/UltraVNC_1_2_05_X64_Setup.exe\r\n\r\nmaybe it would be a good Idea to package pycurl in msi ?\r\n\r\n", + "score": 4.039646 + }, + { + "url": "https://api.github.com/repos/giampaolo/psutil/issues/810", + "repository_url": "https://api.github.com/repos/giampaolo/psutil", + "labels_url": "https://api.github.com/repos/giampaolo/psutil/issues/810/labels{/name}", + "comments_url": "https://api.github.com/repos/giampaolo/psutil/issues/810/comments", + "events_url": "https://api.github.com/repos/giampaolo/psutil/issues/810/events", + "html_url": "https://github.com/giampaolo/psutil/issues/810", + "id": 150993162, + "number": 810, + "title": "Unable to install psutil 4.1.0 on windows", + "user": { + "login": "Mark-Booth", + "id": 1576793, + "avatar_url": "https://avatars.githubusercontent.com/u/1576793?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/Mark-Booth", + "html_url": "https://github.com/Mark-Booth", + "followers_url": "https://api.github.com/users/Mark-Booth/followers", + "following_url": "https://api.github.com/users/Mark-Booth/following{/other_user}", + "gists_url": "https://api.github.com/users/Mark-Booth/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mark-Booth/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mark-Booth/subscriptions", + "organizations_url": "https://api.github.com/users/Mark-Booth/orgs", + "repos_url": "https://api.github.com/users/Mark-Booth/repos", + "events_url": "https://api.github.com/users/Mark-Booth/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mark-Booth/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/giampaolo/psutil/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/giampaolo/psutil/labels/OpSys-Windows", + "name": "OpSys-Windows", + "color": "FFFFFF" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 19, + "created_at": "2016-04-25T22:02:08Z", + "updated_at": "2016-06-19T20:08:41Z", + "closed_at": null, + "body": "Similar to issue #706 the current version of psutil doesn't appear to have windows installers.\r\n\r\nIf I do `pip install --user psutil` it gives me a `error: Unable to find vcvarsall.bat`, but it works fine if I do `pip install --user psutil==4.0.0`.", + "score": 5.6210237 + }, + { + "url": "https://api.github.com/repos/Castronova/EMIT/issues/439", + "repository_url": "https://api.github.com/repos/Castronova/EMIT", + "labels_url": "https://api.github.com/repos/Castronova/EMIT/issues/439/labels{/name}", + "comments_url": "https://api.github.com/repos/Castronova/EMIT/issues/439/comments", + "events_url": "https://api.github.com/repos/Castronova/EMIT/issues/439/events", + "html_url": "https://github.com/Castronova/EMIT/issues/439", + "id": 151766977, + "number": 439, + "title": "Installer is broken", + "user": { + "login": "farrieta9", + "id": 12265327, + "avatar_url": "https://avatars.githubusercontent.com/u/12265327?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/farrieta9", + "html_url": "https://github.com/farrieta9", + "followers_url": "https://api.github.com/users/farrieta9/followers", + "following_url": "https://api.github.com/users/farrieta9/following{/other_user}", + "gists_url": "https://api.github.com/users/farrieta9/gists{/gist_id}", + "starred_url": "https://api.github.com/users/farrieta9/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/farrieta9/subscriptions", + "organizations_url": "https://api.github.com/users/farrieta9/orgs", + "repos_url": "https://api.github.com/users/farrieta9/repos", + "events_url": "https://api.github.com/users/farrieta9/events{/privacy}", + "received_events_url": "https://api.github.com/users/farrieta9/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/Castronova/EMIT/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/Castronova/EMIT/labels/Needs%20OSX%20Testing", + "name": "Needs OSX Testing", + "color": "b60205" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "farrieta9", + "id": 12265327, + "avatar_url": "https://avatars.githubusercontent.com/u/12265327?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/farrieta9", + "html_url": "https://github.com/farrieta9", + "followers_url": "https://api.github.com/users/farrieta9/followers", + "following_url": "https://api.github.com/users/farrieta9/following{/other_user}", + "gists_url": "https://api.github.com/users/farrieta9/gists{/gist_id}", + "starred_url": "https://api.github.com/users/farrieta9/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/farrieta9/subscriptions", + "organizations_url": "https://api.github.com/users/farrieta9/orgs", + "repos_url": "https://api.github.com/users/farrieta9/repos", + "events_url": "https://api.github.com/users/farrieta9/events{/privacy}", + "received_events_url": "https://api.github.com/users/farrieta9/received_events", + "type": "User", + "site_admin": false + }, + "milestone": null, + "comments": 2, + "created_at": "2016-04-28T23:41:09Z", + "updated_at": "2016-05-25T17:39:11Z", + "closed_at": null, + "body": "- [ ] No module named Crypto.Cipher. This is for windows\n tried pip install pycrypto but it did not work.\n\n- [ ] Cannot build build-dev-environment.\n I type the following:\n ./build-dev-environment.sh emit emit-env-osx \nI get permission denied and when i use sudo it says command not found\n\n- [ ] matplotlib.ft2font.so Reason: image not found", + "score": 1.8846201 + }, + { + "url": "https://api.github.com/repos/havardgulldahl/jottalib/issues/112", + "repository_url": "https://api.github.com/repos/havardgulldahl/jottalib", + "labels_url": "https://api.github.com/repos/havardgulldahl/jottalib/issues/112/labels{/name}", + "comments_url": "https://api.github.com/repos/havardgulldahl/jottalib/issues/112/comments", + "events_url": "https://api.github.com/repos/havardgulldahl/jottalib/issues/112/events", + "html_url": "https://github.com/havardgulldahl/jottalib/issues/112", + "id": 153451741, + "number": 112, + "title": "Problem installing on Win 7 - fails because of xattr ", + "user": { + "login": "sdalgard", + "id": 2270169, + "avatar_url": "https://avatars.githubusercontent.com/u/2270169?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/sdalgard", + "html_url": "https://github.com/sdalgard", + "followers_url": "https://api.github.com/users/sdalgard/followers", + "following_url": "https://api.github.com/users/sdalgard/following{/other_user}", + "gists_url": "https://api.github.com/users/sdalgard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sdalgard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sdalgard/subscriptions", + "organizations_url": "https://api.github.com/users/sdalgard/orgs", + "repos_url": "https://api.github.com/users/sdalgard/repos", + "events_url": "https://api.github.com/users/sdalgard/events{/privacy}", + "received_events_url": "https://api.github.com/users/sdalgard/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/havardgulldahl/jottalib/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/havardgulldahl/jottalib/labels/windows", + "name": "windows", + "color": "fbca04" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2016-05-06T13:31:50Z", + "updated_at": "2016-06-11T16:47:18Z", + "closed_at": null, + "body": "Hi,\r\nThank you for making this functionality available :-)\r\nI am trying to test jottalib on windows 7, but the installation fails:\r\n\r\nI have first installed Python 3.5.1 and the started on installing jottalib.\r\n\r\nWhen running \"pip install jottalib[scanner]\" , it ends with the message :\r\nCommand \"python setup.py egg_info\" failed with error code 1 in C:\\Users\\steffend\\AppData\\Local\\Temp\\pip-build-5028kyzf\\xattr\\\r\n\r\nWhen searching for issues about xattr I find that its not supported \r\nhttps://github.com/xattr/xattr/issues/17\r\n\r\nIs there a way around this?\r\n\r\nBest regards\r\nSteffen Dalgard\r\n\r\nI have \r\nHere is the complete printout from the pip command:\r\nCollecting jottalib[scanner]\r\n Using cached jottalib-0.4.2-1.tar.gz\r\nCollecting requests (from jottalib[scanner])\r\n Using cached requests-2.10.0-py2.py3-none-any.whl\r\nCollecting requests-toolbelt (from jottalib[scanner])\r\n Using cached requests_toolbelt-0.6.1-py2.py3-none-any.whl\r\nCollecting certifi==2015.4.28 (from jottalib[scanner])\r\n Using cached certifi-2015.04.28-py2.py3-none-any.whl\r\nCollecting clint (from jottalib[scanner])\r\n Using cached clint-0.5.1.tar.gz\r\nCollecting python-dateutil (from jottalib[scanner])\r\n Using cached python_dateutil-2.5.3-py2.py3-none-any.whl\r\nCollecting humanize (from jottalib[scanner])\r\n Using cached humanize-0.5.1.tar.gz\r\nCollecting lxml (from jottalib[scanner])\r\n Using cached lxml-3.6.0.tar.gz\r\nCollecting six (from jottalib[scanner])\r\n Using cached six-1.10.0-py2.py3-none-any.whl\r\nCollecting xattr (from jottalib[scanner])\r\n Using cached xattr-0.8.0.tar.gz\r\n Complete output from command python setup.py egg_info:\r\n _cffi_backend.c\r\n ffi.c\r\n prep_cif.c\r\n types.c\r\n win32.c\r\n Creating library build\\temp.win32-3.5\\Release\\c\\_cffi_backend.cp35-win32.lib and object build\\temp.win32-3.5\\Release\\c\\_cffi_backend.cp35-win32.exp\r\n Generating code\r\n Finished generating code\r\n \r\n Installed c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\r\n Searching for pycparser\r\n Reading https://pypi.python.org/simple/pycparser/\r\n Best match: pycparser 2.14\r\n Downloading https://pypi.python.org/packages/6d/31/666614af3db0acf377876d48688c5d334b6e493b96d21aa7d332169bee50/pycparser-2.14.tar.gz#md5=a2bc8d28c923b4fe2b2c3b4b51a4f935\r\n Processing pycparser-2.14.tar.gz\r\n Writing C:\\Users\\steffend\\AppData\\Local\\Temp\\easy_install-fh60yv2k\\pycparser-2.14\\setup.cfg\r\n Running pycparser-2.14\\setup.py -q bdist_egg --dist-dir C:\\Users\\steffend\\AppData\\Local\\Temp\\easy_install-fh60yv2k\\pycparser-2.14\\egg-dist-tmp-pzqwd9hz\r\n warning: no previously-included files matching 'yacctab.*' found under directory 'tests'\r\n warning: no previously-included files matching 'lextab.*' found under directory 'tests'\r\n warning: no previously-included files matching 'yacctab.*' found under directory 'examples'\r\n warning: no previously-included files matching 'lextab.*' found under directory 'examples'\r\n zip_safe flag not set; analyzing archive contents...\r\n Copying pycparser-2.14-py3.5.egg to c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\r\n \r\n Installed c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\pycparser-2.14-py3.5.egg\r\n running egg_info\r\n creating pip-egg-info\\xattr.egg-info\r\n writing pip-egg-info\\xattr.egg-info\\PKG-INFO\r\n writing dependency_links to pip-egg-info\\xattr.egg-info\\dependency_links.txt\r\n writing top-level names to pip-egg-info\\xattr.egg-info\\top_level.txt\r\n writing entry points to pip-egg-info\\xattr.egg-info\\entry_points.txt\r\n writing requirements to pip-egg-info\\xattr.egg-info\\requires.txt\r\n writing manifest file 'pip-egg-info\\xattr.egg-info\\SOURCES.txt'\r\n warning: manifest_maker: standard file '-c' not found\r\n \r\n _cffi__x480bb259x3f40c4a9.c\r\n xattr\\__pycache__\\_cffi__x480bb259x3f40c4a9.c(220): fatal error C1083: Cannot open include file: 'sys/xattr.h': No such file or directory\r\n Traceback (most recent call last):\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\_msvccompiler.py\", line 395, in compile\r\n self.spawn(args)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\_msvccompiler.py\", line 514, in spawn\r\n return super().spawn(cmd)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\ccompiler.py\", line 909, in spawn\r\n spawn(cmd, dry_run=self.dry_run)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\spawn.py\", line 38, in spawn\r\n _spawn_nt(cmd, search_path, dry_run=dry_run)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\spawn.py\", line 81, in _spawn_nt\r\n \"command %r failed with exit status %d\" % (cmd, rc))\r\n distutils.errors.DistutilsExecError: command 'D:\\\\Program Files (x86)\\\\Microsoft Visual Studio 14.0\\\\VC\\\\BIN\\\\cl.exe' failed with exit status 2\r\n \r\n During handling of the above exception, another exception occurred:\r\n \r\n Traceback (most recent call last):\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\\cffi\\ffiplatform.py\", line 55, in _build\r\n dist.run_command('build_ext')\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\dist.py\", line 974, in run_command\r\n cmd_obj.run()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\build_ext.py\", line 49, in run\r\n _build_ext.run(self)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\command\\build_ext.py\", line 338, in run\r\n self.build_extensions()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\command\\build_ext.py\", line 447, in build_extensions\r\n self._build_extensions_serial()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\command\\build_ext.py\", line 472, in _build_extensions_serial\r\n self.build_extension(ext)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\build_ext.py\", line 174, in build_extension\r\n _build_ext.build_extension(self, ext)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\command\\build_ext.py\", line 532, in build_extension\r\n depends=ext.depends)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\_msvccompiler.py\", line 397, in compile\r\n raise CompileError(msg)\r\n distutils.errors.CompileError: command 'D:\\\\Program Files (x86)\\\\Microsoft Visual Studio 14.0\\\\VC\\\\BIN\\\\cl.exe' failed with exit status 2\r\n \r\n During handling of the above exception, another exception occurred:\r\n \r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"C:\\Users\\steffend\\AppData\\Local\\Temp\\pip-build-_f5qidb7\\xattr\\setup.py\", line 67, in \r\n cmdclass={'build': cffi_build},\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\core.py\", line 148, in setup\r\n dist.run_commands()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\dist.py\", line 955, in run_commands\r\n self.run_command(cmd)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\dist.py\", line 974, in run_command\r\n cmd_obj.run()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\egg_info.py\", line 193, in run\r\n self.find_sources()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\egg_info.py\", line 216, in find_sources\r\n mm.run()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\egg_info.py\", line 300, in run\r\n self.add_defaults()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\egg_info.py\", line 329, in add_defaults\r\n sdist.add_defaults(self)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\sdist.py\", line 120, in add_defaults\r\n build_py = self.get_finalized_command('build_py')\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\cmd.py\", line 299, in get_finalized_command\r\n cmd_obj.ensure_finalized()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\cmd.py\", line 107, in ensure_finalized\r\n self.finalize_options()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages\\setuptools\\command\\build_py.py\", line 33, in finalize_options\r\n orig.build_py.finalize_options(self)\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\command\\build_py.py\", line 45, in finalize_options\r\n ('force', 'force'))\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\cmd.py\", line 287, in set_undefined_options\r\n src_cmd_obj.ensure_finalized()\r\n File \"c:\\users\\steffend\\appdata\\local\\programs\\python\\python35-32\\lib\\distutils\\cmd.py\", line 107, in ensure_finalized\r\n self.finalize_options()\r\n File \"C:\\Users\\steffend\\AppData\\Local\\Temp\\pip-build-_f5qidb7\\xattr\\setup.py\", line 15, in finalize_options\r\n from xattr.lib import ffi\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\xattr\\__init__.py\", line 12, in \r\n from .lib import (XATTR_NOFOLLOW, XATTR_CREATE, XATTR_REPLACE,\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\xattr\\lib.py\", line 596, in \r\n \"\"\", ext_package='xattr')\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\\cffi\\api.py\", line 450, in verify\r\n lib = self.verifier.load_library()\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\\cffi\\verifier.py\", line 113, in load_library\r\n self._compile_module()\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\\cffi\\verifier.py\", line 210, in _compile_module\r\n outputfilename = ffiplatform.compile(tmpdir, self.get_extension())\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\\cffi\\ffiplatform.py\", line 29, in compile\r\n outputfilename = _build(tmpdir, ext, compiler_verbose)\r\n File \"c:\\users\\steffend\\appdata\\local\\temp\\pip-build-_f5qidb7\\xattr\\.eggs\\cffi-1.6.0-py3.5-win32.egg\\cffi\\ffiplatform.py\", line 62, in _build\r\n raise VerificationError('%s: %s' % (e.__class__.__name__, e))\r\n cffi.ffiplatform.VerificationError: CompileError: command 'D:\\\\Program Files (x86)\\\\Microsoft Visual Studio 14.0\\\\VC\\\\BIN\\\\cl.exe' failed with exit status 2\r\n \r\n ----------------------------------------", + "score": 2.0784333 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/13193", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/13193/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/13193/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/13193/events", + "html_url": "https://github.com/pydata/pandas/issues/13193", + "id": 154940933, + "number": 13193, + "title": "BUG: merging on int32 platforms with large blocks", + "user": { + "login": "randomgambit", + "id": 8282510, + "avatar_url": "https://avatars.githubusercontent.com/u/8282510?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/randomgambit", + "html_url": "https://github.com/randomgambit", + "followers_url": "https://api.github.com/users/randomgambit/followers", + "following_url": "https://api.github.com/users/randomgambit/following{/other_user}", + "gists_url": "https://api.github.com/users/randomgambit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/randomgambit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/randomgambit/subscriptions", + "organizations_url": "https://api.github.com/users/randomgambit/orgs", + "repos_url": "https://api.github.com/users/randomgambit/repos", + "events_url": "https://api.github.com/users/randomgambit/events{/privacy}", + "received_events_url": "https://api.github.com/users/randomgambit/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Advanced", + "name": "Difficulty Advanced", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Medium", + "name": "Effort Medium", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Reshaping", + "name": "Reshaping", + "color": "02d7e1" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 14, + "created_at": "2016-05-16T00:21:09Z", + "updated_at": "2016-05-16T13:56:18Z", + "closed_at": null, + "body": "Hello everyone,\r\n\r\nI am trying to merge a ridiculously large dataframe with another ridiculously smaller one and I get\r\n\r\n`df=df.merge(slave,left_on='buyer',right_on='NAME',how='left')`\r\n`OverflowError: Python int too large to convert to C long`\r\n\r\nRam is filled at 56% prior to the merge. Am I hitting some limitations here?\r\n\r\nmaster dataframe\r\n```\r\ndf.info()\r\n\r\nInt64Index: 80162624 entries, 0 to 90320839\r\nData columns (total 38 columns):\r\nindex int64\r\n\r\ndtypes: datetime64[ns](2), float32(1), int64(3), object(32)\r\nmemory usage: 23.0+ GB\r\n```\r\n\r\n```\r\ndataframe I would like to merge to the master\r\n\r\nslave.info()\r\n\r\nRangeIndex: 55394 entries, 0 to 55393\r\nData columns (total 6 columns):\r\ndtypes: object(6)\r\nmemory usage: 2.5+ MB\r\n```\r\n\r\nI am using the latest Anaconda distribution (that is, with Pandas 18.0)\r\nThanks for your help!\r\n", + "score": 0.47051898 + }, + { + "url": "https://api.github.com/repos/obspy/obspy/issues/1410", + "repository_url": "https://api.github.com/repos/obspy/obspy", + "labels_url": "https://api.github.com/repos/obspy/obspy/issues/1410/labels{/name}", + "comments_url": "https://api.github.com/repos/obspy/obspy/issues/1410/comments", + "events_url": "https://api.github.com/repos/obspy/obspy/issues/1410/events", + "html_url": "https://github.com/obspy/obspy/issues/1410", + "id": 155334727, + "number": 1410, + "title": "Handling of invalid times when parsing SEED volumes (xseed).", + "user": { + "login": "petrrr", + "id": 3065632, + "avatar_url": "https://avatars.githubusercontent.com/u/3065632?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/petrrr", + "html_url": "https://github.com/petrrr", + "followers_url": "https://api.github.com/users/petrrr/followers", + "following_url": "https://api.github.com/users/petrrr/following{/other_user}", + "gists_url": "https://api.github.com/users/petrrr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/petrrr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/petrrr/subscriptions", + "organizations_url": "https://api.github.com/users/petrrr/orgs", + "repos_url": "https://api.github.com/users/petrrr/repos", + "events_url": "https://api.github.com/users/petrrr/events{/privacy}", + "received_events_url": "https://api.github.com/users/petrrr/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/obspy/obspy/labels/.io.xseed", + "name": ".io.xseed", + "color": "0404B4" + }, + { + "url": "https://api.github.com/repos/obspy/obspy/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/obspy/obspy/labels/external", + "name": "external", + "color": "595454" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/obspy/obspy/milestones/13", + "html_url": "https://github.com/obspy/obspy/milestones/1.0.2", + "labels_url": "https://api.github.com/repos/obspy/obspy/milestones/13/labels", + "id": 1383705, + "number": 13, + "title": "1.0.2", + "description": "", + "creator": { + "login": "megies", + "id": 1842780, + "avatar_url": "https://avatars.githubusercontent.com/u/1842780?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/megies", + "html_url": "https://github.com/megies", + "followers_url": "https://api.github.com/users/megies/followers", + "following_url": "https://api.github.com/users/megies/following{/other_user}", + "gists_url": "https://api.github.com/users/megies/gists{/gist_id}", + "starred_url": "https://api.github.com/users/megies/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/megies/subscriptions", + "organizations_url": "https://api.github.com/users/megies/orgs", + "repos_url": "https://api.github.com/users/megies/repos", + "events_url": "https://api.github.com/users/megies/events{/privacy}", + "received_events_url": "https://api.github.com/users/megies/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 37, + "closed_issues": 30, + "state": "open", + "created_at": "2015-10-29T15:43:09Z", + "updated_at": "2016-06-21T08:23:00Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2016-05-17T18:55:45Z", + "updated_at": "2016-05-18T10:04:28Z", + "closed_at": null, + "body": "I came across a SEED dataless file which had time set to `24:00:00.0000` in epoch time spans. Even if to some extent it might make sense to indicate the the time span ends with that day, according to the SEED Manual this is not really standard compliant. \r\n\r\nNonetheless, some programs seems not to enforce this or are resilient, e.g. PDCC and some seiscomp tools. What adds a bit to the confusion and makes it difficult to understand the issue is that Obspy in such a case just silently ignores the value. So if the time is supposed to close an epoch, the parse representation is interpreted as an open ended epoch.\r\n\r\nTherefore, I would propose that the behavior wrt parsing invalid datetime value is somewhat modified. I see the following possibilities:\r\n * generate a warning or even an error so that it becomes obvious that the file is not fully compliant;\r\n * accept some invalid values;\r\n * accept some invalid values and generate a warning;\r\n\r\nNo clear idea what is the best, therefore I start this with as issue. I can provide an PR, once this is discussed and settled.\r\n\r\nTo help us understand and resolve your issue please check that you have provided the information below.\r\n\r\n- [ ] ObsPy version, Python version and Platform (Windows, OSX, Linux ...)\r\n\r\nVersion 1.0.1, Python 3.4.4, OSX/Macports\r\n\r\n- [ ] How did you install ObsPy and Python (pip, anaconda, from source ...)\r\n\r\nMacports\r\n\r\n- [ ] If possible please supply a [Short, Self Contained, Correct, Example](http://sscce.org/) that demonstrates the issue i.e a small piece of code which reproduces the issue and can be run with out any other (or as few as possible) external dependencies.\r\n\r\nWill provide an example dataless if this is relant\r\n\r\n- [ ] If this is a regression (Used to work in an earlier version of ObsPy), please note where it used to work.\r\n\r\nNot investigated\r\n", + "score": 0.84661096 + }, + { + "url": "https://api.github.com/repos/skuschel/postpic/issues/55", + "repository_url": "https://api.github.com/repos/skuschel/postpic", + "labels_url": "https://api.github.com/repos/skuschel/postpic/issues/55/labels{/name}", + "comments_url": "https://api.github.com/repos/skuschel/postpic/issues/55/comments", + "events_url": "https://api.github.com/repos/skuschel/postpic/issues/55/events", + "html_url": "https://github.com/skuschel/postpic/issues/55", + "id": 155362433, + "number": 55, + "title": "provide MS Windows compatibilty, i.e. using python(x,y)", + "user": { + "login": "gloomy-penguin", + "id": 8459162, + "avatar_url": "https://avatars.githubusercontent.com/u/8459162?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/gloomy-penguin", + "html_url": "https://github.com/gloomy-penguin", + "followers_url": "https://api.github.com/users/gloomy-penguin/followers", + "following_url": "https://api.github.com/users/gloomy-penguin/following{/other_user}", + "gists_url": "https://api.github.com/users/gloomy-penguin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gloomy-penguin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gloomy-penguin/subscriptions", + "organizations_url": "https://api.github.com/users/gloomy-penguin/orgs", + "repos_url": "https://api.github.com/users/gloomy-penguin/repos", + "events_url": "https://api.github.com/users/gloomy-penguin/events{/privacy}", + "received_events_url": "https://api.github.com/users/gloomy-penguin/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/skuschel/postpic/labels/bug", + "name": "bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/skuschel/postpic/labels/question/support", + "name": "question/support", + "color": "cc317c" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2016-05-17T21:09:07Z", + "updated_at": "2016-05-30T17:32:16Z", + "closed_at": null, + "body": "The current installation routine seems to not (yet) provide compatibility with MS Windows operating systems. Neither installation using the setup.py nor pip was successful.\r\nSome unfortunate users might nevertheless be bound to Windows, e.g. if one would want to install it on a machine maintained by DESY IT. Although PostPIC should be compatible with, e.g. python(x,y), I could track the errors down to some unsatisfying inabilities of Windows:\r\n\r\n1. Since Windows (or any NTFS file system) handles symlinks very awkwardly, calling the symbolic `_postpic_version.py` link in the main directory fails.\r\nLuckily, this can be overcome easily by rewriting line 26 of setup.py\r\n`import _postpic_version`\r\nto\r\n`from postpic import _postpic_version`\r\nsince the `__init.py__` in the postpic subfolder is properly set up.\r\nI am not sure whether this invokes additional problems, but to me it seems like a proper and easy solution.\r\n\r\n2. However, installation on windows still requires a Windows c++ python compiler, e.g. the Microsoft VisualC++ compiler available for python2.7 and python 3.x.\r\n\r\n3. After getting through the items above, still the installation routine could not call the cython libraries included in python(x,y). I was not able to track this down, probably it is an issue how python(x,y) implements those libraries. However, I recognize that this should not change postpic's functionality.\r\n\r\nFinally, I feel the need for appreciating that the installation on my personal Ubuntu machine ran as smoothly as it could ever be. However, providing support for Windows might open postpic up to a broader range of users.\r\nedit: I seem to be not able to add labels to this issue, my apologies", + "score": 4.3606005 + }, + { + "url": "https://api.github.com/repos/uqfoundation/multiprocess/issues/19", + "repository_url": "https://api.github.com/repos/uqfoundation/multiprocess", + "labels_url": "https://api.github.com/repos/uqfoundation/multiprocess/issues/19/labels{/name}", + "comments_url": "https://api.github.com/repos/uqfoundation/multiprocess/issues/19/comments", + "events_url": "https://api.github.com/repos/uqfoundation/multiprocess/issues/19/events", + "html_url": "https://github.com/uqfoundation/multiprocess/issues/19", + "id": 156049809, + "number": 19, + "title": "Execution hangs in module level map call when pool is built in a submodule and submodule is imported in module's __init__", + "user": { + "login": "grayfall", + "id": 6906110, + "avatar_url": "https://avatars.githubusercontent.com/u/6906110?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/grayfall", + "html_url": "https://github.com/grayfall", + "followers_url": "https://api.github.com/users/grayfall/followers", + "following_url": "https://api.github.com/users/grayfall/following{/other_user}", + "gists_url": "https://api.github.com/users/grayfall/gists{/gist_id}", + "starred_url": "https://api.github.com/users/grayfall/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/grayfall/subscriptions", + "organizations_url": "https://api.github.com/users/grayfall/orgs", + "repos_url": "https://api.github.com/users/grayfall/repos", + "events_url": "https://api.github.com/users/grayfall/events{/privacy}", + "received_events_url": "https://api.github.com/users/grayfall/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/uqfoundation/multiprocess/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 27, + "created_at": "2016-05-20T20:59:02Z", + "updated_at": "2016-06-06T11:06:17Z", + "closed_at": null, + "body": "Suppose we've got a project:\r\n\r\n test/\r\n test.py\r\n pkg/\r\n __init__.py\r\n lib/\r\n __init__.py\r\n workers.py\r\n test/\r\n __init__.py\r\n workers.py\r\n\r\nIn `pkg/lib/workers` we have:\r\n\r\n\r\n import multiprocess.pool as mp\r\n \r\n \r\n class Test:\r\n def __init__(self, f):\r\n self.f = f\r\n \r\n def method(self, data):\r\n return workers.map(self.f, data)\r\n \r\n\r\n if __name__ == \"__main__\":\r\n raise RuntimeError\r\n else:\r\n workers = mp.Pool(processes=2)\r\n\r\nin `pkg/test/workers.py`\r\n\r\n from ..lib.workers import *\r\n \r\n\r\n print(Test(max).method([[1,2,3], [1,2,3]]))\r\n\r\n\r\nin `test.py`\r\n\r\n print(\"Hello\")\r\n \r\n import pkg.test.workers\r\n \r\n print(\"Goobye\")\r\n\r\n\r\nWhen I run `test.py` I get: \r\n\r\n $ python test.py \r\n Hello\r\n [3, 3]\r\n Goobye\r\n\r\nIf I change the second line of code in `pkg/test/workers.py` from `print(Test(max).method([[1,2,3], [1,2,3]]))` to `print(Test(lambda x: max(x)).method([[1,2,3], [1,2,3]]))`, I get\r\n\r\n $ python test.py \r\n Hello\r\n\r\nAnd the process freezes. Nothing happens for hours. No errors, no messages.\r\n\r\nP.S.\r\n\r\nThis is a stripped down version of my real project, where I use the pool of workers inside a bound method of an instance and pass an attribute to the pool as a function to use. I believe this example reproduces the exact same problem. \r\n\r\nP.P.S.\r\n\r\nI've also asked the question on Stack Overflow ([link](http://stackoverflow.com/questions/37355288/multiprocess-freezes?noredirect=1#comment62226170_37355288))", + "score": 0.34360886 + }, + { + "url": "https://api.github.com/repos/quantopian/zipline/issues/1228", + "repository_url": "https://api.github.com/repos/quantopian/zipline", + "labels_url": "https://api.github.com/repos/quantopian/zipline/issues/1228/labels{/name}", + "comments_url": "https://api.github.com/repos/quantopian/zipline/issues/1228/comments", + "events_url": "https://api.github.com/repos/quantopian/zipline/issues/1228/events", + "html_url": "https://github.com/quantopian/zipline/issues/1228", + "id": 156354789, + "number": 1228, + "title": "yahoo bundle causes SQLiteAdjustmentWriter error - sqlite3.OperationalError: unable to open database file", + "user": { + "login": "cwengc", + "id": 5105334, + "avatar_url": "https://avatars.githubusercontent.com/u/5105334?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/cwengc", + "html_url": "https://github.com/cwengc", + "followers_url": "https://api.github.com/users/cwengc/followers", + "following_url": "https://api.github.com/users/cwengc/following{/other_user}", + "gists_url": "https://api.github.com/users/cwengc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cwengc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cwengc/subscriptions", + "organizations_url": "https://api.github.com/users/cwengc/orgs", + "repos_url": "https://api.github.com/users/cwengc/repos", + "events_url": "https://api.github.com/users/cwengc/events{/privacy}", + "received_events_url": "https://api.github.com/users/cwengc/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/quantopian/zipline/labels/Bug", + "name": "Bug", + "color": "fc2929" + }, + { + "url": "https://api.github.com/repos/quantopian/zipline/labels/Data%20Bundle", + "name": "Data Bundle", + "color": "116184" + }, + { + "url": "https://api.github.com/repos/quantopian/zipline/labels/Windows", + "name": "Windows", + "color": "207de5" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 1, + "created_at": "2016-05-23T20:03:42Z", + "updated_at": "2016-06-07T15:39:40Z", + "closed_at": null, + "body": "Dear Zipline Maintainers,\r\n\r\nBefore I tell you about my issue, let me describe my environment:\r\n\r\n# Environment\r\n\r\n* Operating System: Windows 7\r\n* Python Version: 3.4\r\n* Python Bitness: 64\r\n* How did you install Zipline: conda\r\n* Python packages: \r\n```\r\n_license 1.1 py34_0\r\nalabaster 0.7.3 py34_0\r\nanaconda 2.3.0 np19py34_0\r\nargcomplete 0.8.9 py34_0\r\nastropy 1.0.3 np19py34_0\r\nbabel 1.3 py34_0\r\nbcolz 0.12.1 np19py34_0\r\nbeautiful-soup 4.3.2 py34_1\r\nbeautifulsoup4 4.3.2 \r\nbinstar 0.11.0 py34_0\r\nbitarray 0.8.1 py34_1\r\nblaze 0.8.0 \r\nblaze-core 0.8.0 np19py34_0\r\nblz 0.6.2 np19py34_1\r\nbokeh 0.9.0 np19py34_0\r\nboto 2.38.0 py34_0\r\nbottleneck 1.0.0 np19py34_0\r\ncachetools 1.1.6 py34_0\r\ncertifi 14.05.14 py34_0\r\ncffi 1.1.0 py34_0\r\nclick 6.6 py34_0\r\nclyent 0.3.4 py34_0\r\ncolorama 0.3.3 py34_0\r\nconda 4.0.6 py34_0\r\nconda-build 1.14.1 py34_0\r\nconda-env 2.4.5 py34_0\r\nconfigobj 5.0.6 py34_0\r\ncontextlib2 0.4.0 py34_0\r\ncryptography 0.9.1 py34_0\r\ncyordereddict 0.2.2 py34_0\r\ncython 0.24 py34_0\r\ncytoolz 0.7.3 py34_0\r\ndatashape 0.4.5 np19py34_0\r\ndecorator 4.0.9 py34_0\r\ndocutils 0.12 py34_1\r\ndynd-python 0.6.5 np19py34_0\r\nfastcache 1.0.2 py34_0\r\nflask 0.10.1 py34_1\r\ngreenlet 0.4.7 py34_0\r\nh5py 2.5.0 np19py34_1\r\nhdf5 1.8.15.1 2\r\nidna 2.0 py34_0\r\nintervaltree 2.1.0 py34_0\r\nipython 3.2.0 py34_0\r\nipython-notebook 3.2.0 py34_0\r\nipython-qtconsole 3.2.0 py34_0\r\nitsdangerous 0.24 py34_0\r\njdcal 1.0 py34_0\r\njedi 0.8.1 py34_0\r\njinja2 2.7.3 py34_2\r\njsonschema 2.4.0 py34_0\r\nlauncher 1.0.0 1\r\nllvmlite 0.5.0 py34_0\r\nlogbook 0.12.5 py34_0\r\nlxml 3.4.4 py34_0\r\nmarkupsafe 0.23 py34_0\r\nmatplotlib 1.4.3 np19py34_1\r\nmenuinst 1.3.2 py34_0\r\nmistune 0.5.1 py34_1\r\nmkl 11.3.1 0\r\nmock 1.0.1 py34_0\r\nmultipledispatch 0.4.8 py34_0\r\nnetworkx 1.11 py34_0\r\nnltk 3.0.3 np19py34_0\r\nnode-webkit 0.10.1 0\r\nnose 1.3.7 py34_0\r\nnumba 0.19.1 np19py34_0\r\nnumexpr 2.4.6 np19py34_0\r\nnumpy 1.9.3 py34_1\r\nodo 0.3.2 np19py34_0\r\nopenpyxl 1.8.5 py34_0\r\npandas 0.16.1 np19py34_0\r\npandas-datareader 0.2.1 py34_0\r\npatsy 0.4.1 py34_0\r\npep8 1.6.2 py34_0\r\npillow 2.8.2 py34_0\r\npip 8.1.1 py34_1\r\nply 3.6 py34_0\r\npsutil 2.2.1 py34_0\r\npy 1.4.27 py34_0\r\npyasn1 0.1.7 py34_0\r\npycosat 0.6.1 py34_0\r\npycparser 2.14 py34_0\r\npycrypto 2.6.1 py34_3\r\npyflakes 0.9.2 py34_0\r\npygments 2.0.2 py34_0\r\npyopenssl 0.15.1 py34_1\r\npyparsing 2.0.3 py34_0\r\npyqt 4.10.4 py34_1\r\npyreadline 2.0 py34_0\r\npytables 3.2.0 np19py34_0\r\npytest 2.7.1 py34_0\r\npython 3.4.4 4\r\npython-dateutil 2.5.3 py34_0\r\npytz 2016.4 py34_0\r\npywin32 219 py34_0\r\npyyaml 3.11 py34_3\r\npyzmq 14.7.0 py34_0\r\nrequests 2.9.1 py34_0\r\nrequests-file 1.4 py34_0\r\nrope 0.9.4 py34_1\r\nrope-py3k 0.9.4.post1 \r\nrunipy 0.1.3 py34_0\r\nscikit-image 0.11.3 np19py34_0\r\nscikit-learn 0.16.1 np19py34_0\r\nscipy 0.16.0 np19py34_0\r\nsetuptools 20.7.0 py34_0\r\nsix 1.10.0 py34_0\r\nsnowballstemmer 1.2.0 py34_0\r\nsockjs-tornado 1.0.1 py34_0\r\nsortedcontainers 1.4.4 py34_0\r\nsphinx 1.3.1 py34_0\r\nsphinx-rtd-theme 0.1.7 \r\nsphinx_rtd_theme 0.1.7 py34_0\r\nspyder 2.3.5.2 py34_0\r\nspyder-app 2.3.5.2 py34_0\r\nsqlalchemy 1.0.12 py34_0\r\nstatsmodels 0.6.1 np19py34_0\r\nswigibpy 0.4.1 \r\nsympy 0.7.6 py34_0\r\ntables 3.2.0 \r\ntoolz 0.7.4 py34_0\r\ntornado 4.2 py34_0\r\nujson 1.33 py34_0\r\nvs2010_runtime 10.00.40219.1 0\r\nwerkzeug 0.10.4 py34_0\r\nwheel 0.29.0 py34_0\r\nxlrd 0.9.3 py34_0\r\nxlsxwriter 0.7.3 py34_0\r\nxlwings 0.3.5 py34_0\r\nxlwt 1.0.0 py34_0\r\nzipline 1.0.0 np19py34_0\r\nzlib 1.2.8 vc10_2\r\n```\r\nNow that you know a little about me, let me tell you about the issue I am\r\nhaving:\r\n\r\n# Description of Issue\r\nI'm running on windows, I'm getting an error when trying to write the asset to file. I have specified yahoo as the data source and registered the bundle followed by ingest.\r\n\r\nThis is the point where I'm encountering an issue:\r\n```python\r\nadjustment_db_writer = SQLiteAdjustmentWriter(\r\n stack.enter_context(working_file(\r\n adjustment_db_path(name, timestr, environ=environ),\r\n )).path,\r\n BcolzDailyBarReader(daily_bars_path),\r\n bundle.calendar,\r\n overwrite=True,\r\n```\r\n\r\nStacktrace\r\n```\r\n File \"C:\\Anaconda3\\lib\\site-packages\\zipline\\data\\bundles\\core.py\", line 358, in ingest\r\n overwrite=True,\r\n File \"C:\\Anaconda3\\lib\\site-packages\\zipline\\data\\us_equity_pricing.py\", line 824, in __init__\r\n self.conn = sqlite3.connect(conn_or_path)\r\nsqlite3.OperationalError: unable to open database file\r\n```\r\nconn_or_path is\r\n`'C:\\\\Users\\\\4770\\\\AppData\\\\Local\\\\Temp\\\\tmp73enzuii'`\r\n(Note that this changes on every run)\r\n\r\nHere is how you can reproduce this issue on your machine:\r\n\r\n## Reproduction Steps\r\n\r\n1. on windows machine, \r\n2. register yahoo bundle, start=\"2014-01-01\", end=\"2014-02-02\"\r\n3. ingest yahoo bundle\r\n...\r\n\r\n## What steps have you taken to resolve this already?\r\nstep through the code till the point where error occurs, with stack trace attached\r\n\r\n\r\n...\r\n\r\nSincerely,\r\nWayne\r\n", + "score": 1.6980284 + }, + { + "url": "https://api.github.com/repos/lingpy/lingpy/issues/254", + "repository_url": "https://api.github.com/repos/lingpy/lingpy", + "labels_url": "https://api.github.com/repos/lingpy/lingpy/issues/254/labels{/name}", + "comments_url": "https://api.github.com/repos/lingpy/lingpy/issues/254/comments", + "events_url": "https://api.github.com/repos/lingpy/lingpy/issues/254/events", + "html_url": "https://github.com/lingpy/lingpy/issues/254", + "id": 158694419, + "number": 254, + "title": "igraph requirement", + "user": { + "login": "evoling", + "id": 2795822, + "avatar_url": "https://avatars.githubusercontent.com/u/2795822?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/evoling", + "html_url": "https://github.com/evoling", + "followers_url": "https://api.github.com/users/evoling/followers", + "following_url": "https://api.github.com/users/evoling/following{/other_user}", + "gists_url": "https://api.github.com/users/evoling/gists{/gist_id}", + "starred_url": "https://api.github.com/users/evoling/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/evoling/subscriptions", + "organizations_url": "https://api.github.com/users/evoling/orgs", + "repos_url": "https://api.github.com/users/evoling/repos", + "events_url": "https://api.github.com/users/evoling/events{/privacy}", + "received_events_url": "https://api.github.com/users/evoling/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/lingpy/lingpy/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 2, + "created_at": "2016-06-06T14:40:46Z", + "updated_at": "2016-06-06T16:36:59Z", + "closed_at": null, + "body": "When you run `from lingpy import *` from a fresh install you get the warnings:\r\n\r\n```\r\n2016-06-06 16:36:51,060 [WARNING] Module 'sklearn' could not be loaded. Some methods may not work properly.\r\n2016-06-06 16:36:51,060 [WARNING] Module 'igraph' could not be loaded. Some methods may not work properly.\r\n```\r\n\r\n`pip install igraph` installs the wrong igraph library, and causes cryptic errors when you try to import lingpy. You need `pip install python-igraph` instead. ", + "score": 2.4051592 + }, + { + "url": "https://api.github.com/repos/pydata/pandas/issues/13407", + "repository_url": "https://api.github.com/repos/pydata/pandas", + "labels_url": "https://api.github.com/repos/pydata/pandas/issues/13407/labels{/name}", + "comments_url": "https://api.github.com/repos/pydata/pandas/issues/13407/comments", + "events_url": "https://api.github.com/repos/pydata/pandas/issues/13407/events", + "html_url": "https://github.com/pydata/pandas/issues/13407", + "id": 159303277, + "number": 13407, + "title": "DataFrame.values not a 2D-array when constructed from timezone-aware datetimes", + "user": { + "login": "aburgm", + "id": 5033091, + "avatar_url": "https://avatars.githubusercontent.com/u/5033091?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/aburgm", + "html_url": "https://github.com/aburgm", + "followers_url": "https://api.github.com/users/aburgm/followers", + "following_url": "https://api.github.com/users/aburgm/following{/other_user}", + "gists_url": "https://api.github.com/users/aburgm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aburgm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aburgm/subscriptions", + "organizations_url": "https://api.github.com/users/aburgm/orgs", + "repos_url": "https://api.github.com/users/aburgm/repos", + "events_url": "https://api.github.com/users/aburgm/events{/privacy}", + "received_events_url": "https://api.github.com/users/aburgm/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Bug", + "name": "Bug", + "color": "e10c02" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Difficulty%20Intermediate", + "name": "Difficulty Intermediate", + "color": "fbca04" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Dtypes", + "name": "Dtypes", + "color": "e102d8" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Effort%20Low", + "name": "Effort Low", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Reshaping", + "name": "Reshaping", + "color": "02d7e1" + }, + { + "url": "https://api.github.com/repos/pydata/pandas/labels/Timezones", + "name": "Timezones", + "color": "5319e7" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pydata/pandas/milestones/32", + "html_url": "https://github.com/pydata/pandas/milestones/Next%20Major%20Release", + "labels_url": "https://api.github.com/repos/pydata/pandas/milestones/32/labels", + "id": 933188, + "number": 32, + "title": "Next Major Release", + "description": "after 0.18.0 of course", + "creator": { + "login": "jreback", + "id": 953992, + "avatar_url": "https://avatars.githubusercontent.com/u/953992?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jreback", + "html_url": "https://github.com/jreback", + "followers_url": "https://api.github.com/users/jreback/followers", + "following_url": "https://api.github.com/users/jreback/following{/other_user}", + "gists_url": "https://api.github.com/users/jreback/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jreback/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jreback/subscriptions", + "organizations_url": "https://api.github.com/users/jreback/orgs", + "repos_url": "https://api.github.com/users/jreback/repos", + "events_url": "https://api.github.com/users/jreback/events{/privacy}", + "received_events_url": "https://api.github.com/users/jreback/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 971, + "closed_issues": 145, + "state": "open", + "created_at": "2015-01-13T10:53:19Z", + "updated_at": "2016-06-21T10:11:19Z", + "due_on": "2016-08-31T04:00:00Z", + "closed_at": null + }, + "comments": 3, + "created_at": "2016-06-09T00:03:39Z", + "updated_at": "2016-06-09T16:41:03Z", + "closed_at": null, + "body": "When a DataFrame column is constructed from timezone-aware datetime objects, its `values` attribute returns a `pandas.DatetimeIndex` instead of a 2D numpy array. This is problematic because the datetime index does not support all operations that a numpy array does.\r\n\r\n#### Code Sample, a copy-pastable example if possible\r\n\r\n```python\r\nimport datetime\r\nimport dateutil\r\nimport pandas\r\nimport numpy as np\r\ndf = pandas.DataFrame()\r\ndf['Time'] = [datetime.datetime(2015,1,1,tzinfo=dateutil.tz.tzutc())]\r\ndf.dropna(axis=0) # raises ValueError: 'axis' entry is out of bounds\r\n```\r\n\r\nAlso, `print df.values` returns `DatetimeIndex(['2015-01-01'], dtype='datetime64[ns, UTC]', freq=None)`.\r\n\r\n#### Expected Output\r\n\r\nThe `df.dropna` call should be a no-op.\r\n\r\nCompare this to the case when constructed using `df['Time'] = [datetime.datetime(2015,1,1)]`. In that case, `df.dropna` works as expected, and `df.values` is `array([['2014-12-31T16:00:00.000000000-0800']], dtype='datetime64[ns]')`.\r\n\r\n#### output of ``pd.show_versions()``\r\n\r\n```\r\nINSTALLED VERSIONS\r\n------------------\r\ncommit: None\r\npython: 2.7.11.final.0\r\npython-bits: 64\r\nOS: Windows\r\nOS-release: 7\r\nmachine: AMD64\r\nprocessor: Intel64 Family 6 Model 63 Stepping 2, GenuineIntel\r\nbyteorder: little\r\nLC_ALL: None\r\nLANG: None\r\n\r\npandas: 0.18.1\r\nnose: None\r\npip: 8.0.2\r\nsetuptools: 20.1.1\r\nCython: 0.23.4\r\nnumpy: 1.10.4\r\nscipy: 0.17.0\r\nstatsmodels: 0.6.1\r\nxarray: None\r\nIPython: 4.1.1\r\nsphinx: 1.3.5\r\npatsy: 0.4.0\r\ndateutil: 2.4.2\r\npytz: 2015.7\r\nblosc: None\r\nbottleneck: None\r\ntables: 3.2.2\r\nnumexpr: 2.4.6\r\nmatplotlib: 1.5.1\r\nopenpyxl: 2.3.2\r\nxlrd: 0.9.4\r\nxlwt: 1.0.0\r\nxlsxwriter: None\r\nlxml: None\r\nbs4: 4.3.2\r\nhtml5lib: None\r\nhttplib2: None\r\napiclient: None\r\nsqlalchemy: 1.0.12\r\npymysql: None\r\npsycopg2: None\r\njinja2: 2.8\r\nboto: None\r\npandas_datareader: None\r\n```", + "score": 0.9475301 + }, + { + "url": "https://api.github.com/repos/jkbrzt/httpie/issues/480", + "repository_url": "https://api.github.com/repos/jkbrzt/httpie", + "labels_url": "https://api.github.com/repos/jkbrzt/httpie/issues/480/labels{/name}", + "comments_url": "https://api.github.com/repos/jkbrzt/httpie/issues/480/comments", + "events_url": "https://api.github.com/repos/jkbrzt/httpie/issues/480/events", + "html_url": "https://github.com/jkbrzt/httpie/issues/480", + "id": 159396857, + "number": 480, + "title": "HTTPie ignores system certificates", + "user": { + "login": "luv", + "id": 1266756, + "avatar_url": "https://avatars.githubusercontent.com/u/1266756?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/luv", + "html_url": "https://github.com/luv", + "followers_url": "https://api.github.com/users/luv/followers", + "following_url": "https://api.github.com/users/luv/following{/other_user}", + "gists_url": "https://api.github.com/users/luv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/luv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/luv/subscriptions", + "organizations_url": "https://api.github.com/users/luv/orgs", + "repos_url": "https://api.github.com/users/luv/repos", + "events_url": "https://api.github.com/users/luv/events{/privacy}", + "received_events_url": "https://api.github.com/users/luv/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/jkbrzt/httpie/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": null, + "comments": 13, + "created_at": "2016-06-09T12:35:33Z", + "updated_at": "2016-06-10T13:55:30Z", + "closed_at": null, + "body": "HTTPie ignores system certificates\r\n\r\n```\r\nhttp --debug -j https://example_using_my_ca.com\r\n\r\nHTTPie 0.9.3\r\nHTTPie data: /home/lukas/.httpie\r\nRequests 2.10.0\r\nPygments 1.6\r\nPython 3.4.3 (default, Oct 14 2015, 20:28:29) \r\n[GCC 4.8.4] linux\r\n\r\n>>> requests.request(**{'allow_redirects': False,\r\n 'auth': None,\r\n 'cert': None,\r\n 'data': '',\r\n 'files': DataDict(),\r\n 'headers': {'Accept': b'application/json',\r\n 'Content-Type': b'application/json',\r\n 'User-Agent': b'HTTPie/0.9.3'},\r\n 'method': 'get',\r\n 'params': ParamsDict(),\r\n 'proxies': {},\r\n 'stream': True,\r\n 'timeout': 30,\r\n 'url': 'https://example_using_my_ca.com',\r\n 'verify': True})\r\n\r\nTraceback (most recent call last):\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py\", line 578, in urlopen\r\n chunked=chunked)\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py\", line 351, in _make_request\r\n self._validate_conn(conn)\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py\", line 814, in _validate_conn\r\n conn.connect()\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connection.py\", line 289, in connect\r\n ssl_version=resolved_ssl_version)\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/util/ssl_.py\", line 308, in ssl_wrap_socket\r\n return context.wrap_socket(sock, server_hostname=server_hostname)\r\n File \"/usr/lib/python3.4/ssl.py\", line 365, in wrap_socket\r\n _context=self)\r\n File \"/usr/lib/python3.4/ssl.py\", line 601, in __init__\r\n self.do_handshake()\r\n File \"/usr/lib/python3.4/ssl.py\", line 828, in do_handshake\r\n self._sslobj.do_handshake()\r\nssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/adapters.py\", line 403, in send\r\n timeout=timeout\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py\", line 604, in urlopen\r\n raise SSLError(e)\r\nrequests.packages.urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n File \"/usr/local/bin/http\", line 11, in \r\n sys.exit(main())\r\n File \"/usr/local/lib/python3.4/dist-packages/httpie/core.py\", line 115, in main\r\n response = get_response(args, config_dir=env.config.directory)\r\n File \"/usr/local/lib/python3.4/dist-packages/httpie/client.py\", line 48, in get_response\r\n response = requests_session.request(**kwargs)\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/sessions.py\", line 475, in request\r\n resp = self.send(prep, **send_kwargs)\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/sessions.py\", line 585, in send\r\n r = adapter.send(request, **kwargs)\r\n File \"/usr/local/lib/python3.4/dist-packages/requests/adapters.py\", line 477, in send\r\n raise SSLError(e, request=request)\r\nrequests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)\r\n```\r\n\r\nFor reference, curl works fine: `curl https://example_using_my_ca.com`\r\n\r\n", + "score": 0.5137622 + }, + { + "url": "https://api.github.com/repos/pallets/flask/issues/1902", + "repository_url": "https://api.github.com/repos/pallets/flask", + "labels_url": "https://api.github.com/repos/pallets/flask/issues/1902/labels{/name}", + "comments_url": "https://api.github.com/repos/pallets/flask/issues/1902/comments", + "events_url": "https://api.github.com/repos/pallets/flask/issues/1902/events", + "html_url": "https://github.com/pallets/flask/issues/1902", + "id": 159501827, + "number": 1902, + "title": "Import error with some examples", + "user": { + "login": "rnelsonchem", + "id": 3750670, + "avatar_url": "https://avatars.githubusercontent.com/u/3750670?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rnelsonchem", + "html_url": "https://github.com/rnelsonchem", + "followers_url": "https://api.github.com/users/rnelsonchem/followers", + "following_url": "https://api.github.com/users/rnelsonchem/following{/other_user}", + "gists_url": "https://api.github.com/users/rnelsonchem/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rnelsonchem/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rnelsonchem/subscriptions", + "organizations_url": "https://api.github.com/users/rnelsonchem/orgs", + "repos_url": "https://api.github.com/users/rnelsonchem/repos", + "events_url": "https://api.github.com/users/rnelsonchem/events{/privacy}", + "received_events_url": "https://api.github.com/users/rnelsonchem/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/pallets/flask/labels/bug", + "name": "bug", + "color": "eb6420" + }, + { + "url": "https://api.github.com/repos/pallets/flask/labels/cli", + "name": "cli", + "color": "5C35CC" + }, + { + "url": "https://api.github.com/repos/pallets/flask/labels/docs", + "name": "docs", + "color": "ded63c" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/pallets/flask/milestones/2", + "html_url": "https://github.com/pallets/flask/milestones/1.0", + "labels_url": "https://api.github.com/repos/pallets/flask/milestones/2/labels", + "id": 795954, + "number": 2, + "title": "1.0", + "description": "", + "creator": { + "login": "untitaker", + "id": 837573, + "avatar_url": "https://avatars.githubusercontent.com/u/837573?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/untitaker", + "html_url": "https://github.com/untitaker", + "followers_url": "https://api.github.com/users/untitaker/followers", + "following_url": "https://api.github.com/users/untitaker/following{/other_user}", + "gists_url": "https://api.github.com/users/untitaker/gists{/gist_id}", + "starred_url": "https://api.github.com/users/untitaker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/untitaker/subscriptions", + "organizations_url": "https://api.github.com/users/untitaker/orgs", + "repos_url": "https://api.github.com/users/untitaker/repos", + "events_url": "https://api.github.com/users/untitaker/events{/privacy}", + "received_events_url": "https://api.github.com/users/untitaker/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 19, + "closed_issues": 28, + "state": "open", + "created_at": "2014-09-19T15:47:20Z", + "updated_at": "2016-06-09T21:09:26Z", + "due_on": null, + "closed_at": null + }, + "comments": 6, + "created_at": "2016-06-09T20:35:18Z", + "updated_at": "2016-06-20T22:43:18Z", + "closed_at": null, + "body": "I'm trying to run the \"flaskr\" and \"minitwit\" examples, but I'm running into an import error issue. I'm trying to follow the instructions from the README file. When running `flask initdb`, I get the following error:\r\n\r\n```\r\nTraceback (most recent call last):\r\n File \"/home/nelson/apps/miniconda/bin/flask\", line 6, in \r\n sys.exit(flask.cli.main())\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/flask/cli.py\", line 478, in main\r\n cli.main(args=args, prog_name=name)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/flask/cli.py\", line 345, in main\r\n return AppGroup.main(self, *args, **kwargs)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/click/core.py\", line 696, in main\r\n rv = self.invoke(ctx)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/click/core.py\", line 1055, in invoke\r\n cmd_name, cmd, args = self.resolve_command(ctx, args)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/click/core.py\", line 1094, in resolve_command\r\n cmd = self.get_command(ctx, cmd_name)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/flask/cli.py\", line 316, in get_command\r\n rv = info.load_app().cli.get_command(ctx, name)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/flask/cli.py\", line 209, in load_app\r\n rv = locate_app(self.app_import_path)\r\n File \"/home/nelson/apps/miniconda/lib/python3.4/site-packages/flask/cli.py\", line 89, in locate_app\r\n __import__(module)\r\nImportError: No module named 'flaskr'\r\n```\r\n\r\nI'm using an Anaconda Python install on both Windows 10 (Python 3.5) and Linux (Python 3.4) with either the stock flask 0.11 install or an install from the latest git repo. I'm running this code from appropriate directory and am able to import flaskr or minitwit from a terminal Python session. I can run the other examples that do not require the flask script. \r\n\r\n", + "score": 0.851207 + }, + { + "url": "https://api.github.com/repos/conda/conda/issues/2668", + "repository_url": "https://api.github.com/repos/conda/conda", + "labels_url": "https://api.github.com/repos/conda/conda/issues/2668/labels{/name}", + "comments_url": "https://api.github.com/repos/conda/conda/issues/2668/comments", + "events_url": "https://api.github.com/repos/conda/conda/issues/2668/events", + "html_url": "https://github.com/conda/conda/issues/2668", + "id": 160290535, + "number": 2668, + "title": "Activate overwrites full path (repeated activation)", + "user": { + "login": "jakirkham", + "id": 3019665, + "avatar_url": "https://avatars.githubusercontent.com/u/3019665?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/jakirkham", + "html_url": "https://github.com/jakirkham", + "followers_url": "https://api.github.com/users/jakirkham/followers", + "following_url": "https://api.github.com/users/jakirkham/following{/other_user}", + "gists_url": "https://api.github.com/users/jakirkham/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jakirkham/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jakirkham/subscriptions", + "organizations_url": "https://api.github.com/users/jakirkham/orgs", + "repos_url": "https://api.github.com/users/jakirkham/repos", + "events_url": "https://api.github.com/users/jakirkham/events{/privacy}", + "received_events_url": "https://api.github.com/users/jakirkham/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/conda/conda/labels/bug", + "name": "bug", + "color": "fc2929" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "msarahan", + "id": 38393, + "avatar_url": "https://avatars.githubusercontent.com/u/38393?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/msarahan", + "html_url": "https://github.com/msarahan", + "followers_url": "https://api.github.com/users/msarahan/followers", + "following_url": "https://api.github.com/users/msarahan/following{/other_user}", + "gists_url": "https://api.github.com/users/msarahan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/msarahan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msarahan/subscriptions", + "organizations_url": "https://api.github.com/users/msarahan/orgs", + "repos_url": "https://api.github.com/users/msarahan/repos", + "events_url": "https://api.github.com/users/msarahan/events{/privacy}", + "received_events_url": "https://api.github.com/users/msarahan/received_events", + "type": "User", + "site_admin": false + }, + "milestone": { + "url": "https://api.github.com/repos/conda/conda/milestones/2", + "html_url": "https://github.com/conda/conda/milestones/4.1", + "labels_url": "https://api.github.com/repos/conda/conda/milestones/2/labels", + "id": 1716159, + "number": 2, + "title": "4.1", + "description": "", + "creator": { + "login": "kalefranz", + "id": 1418419, + "avatar_url": "https://avatars.githubusercontent.com/u/1418419?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/kalefranz", + "html_url": "https://github.com/kalefranz", + "followers_url": "https://api.github.com/users/kalefranz/followers", + "following_url": "https://api.github.com/users/kalefranz/following{/other_user}", + "gists_url": "https://api.github.com/users/kalefranz/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kalefranz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kalefranz/subscriptions", + "organizations_url": "https://api.github.com/users/kalefranz/orgs", + "repos_url": "https://api.github.com/users/kalefranz/repos", + "events_url": "https://api.github.com/users/kalefranz/events{/privacy}", + "received_events_url": "https://api.github.com/users/kalefranz/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 16, + "closed_issues": 104, + "state": "open", + "created_at": "2016-04-19T03:25:44Z", + "updated_at": "2016-06-21T15:33:26Z", + "due_on": null, + "closed_at": null + }, + "comments": 25, + "created_at": "2016-06-14T21:39:43Z", + "updated_at": "2016-06-21T22:51:04Z", + "closed_at": null, + "body": "It seems the new `conda` will overwrite everything in the path by adding the prefix to it multiple times.\r\n\r\n```\r\nLast login: Tue Jun 14 16:31:45 on ttys006\r\nprepending /zopt/conda2/envs/nanshenv/bin to PATH\r\n-bash: sed: command not found\r\n-bash: docker-machine: command not found\r\n-bash: docker-machine: command not found\r\n((nanshenv)) kirkhamj-lm1:apache-libcloud kirkhamj$ which sed\r\n-bash: which: command not found\r\n((nanshenv)) kirkhamj-lm1:apache-libcloud kirkhamj$ env\r\n-bash: env: command not found\r\n((nanshenv)) kirkhamj-lm1:apache-libcloud kirkhamj$ python\r\nPython 2.7.11 |Continuum Analytics, Inc.| (default, Dec 6 2015, 18:57:58) \r\n[GCC 4.2.1 (Apple Inc. build 5577)] on darwin\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\nAnaconda is brought to you by Continuum Analytics.\r\nPlease check out: http://continuum.io/thanks and https://anaconda.org\r\n>>> import os\r\n>>> print(os.environ)\r\n{'SPARK_HOME': '/Applications/spark-1.1.1-bin-hadoop1', 'TERM_PROGRAM_VERSION': '326', 'LOGNAME': 'kirkhamj', 'USER': 'kirkhamj', 'PATH': '/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:', 'HOME': '/Users/kirkhamj', 'PROMPT_VAR': 'PS1', 'PS1': '((nanshenv)) \\\\h:\\\\W \\\\u\\\\$ ', 'DISPLAY': '/tmp/launch-El9IAA/org.macosforge.xquartz:0', 'TERM_PROGRAM': 'Apple_Terminal', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm-256color', 'SHELL': 'bash', 'SHLVL': '1', 'SECURITYSESSIONID': '186a5', 'CONDA_ENV_PATH': '', 'CONDA_OLD_PS1': '\\\\h:\\\\W \\\\u\\\\$ ', '_': '/zopt/conda2/envs/nanshenv/bin/python', 'CONDA_DEFAULT_ENV': '', 'TERM_SESSION_ID': '46E47552-F7A1-44E5-8F1D-9748F29F8BD1', 'SSH_AUTH_SOCK': '/tmp/launch-k8nEFT/Listeners', 'Apple_PubSub_Socket_Render': '/tmp/launch-IbGiHb/Render', 'TMPDIR': '/var/folders/jj/pp1xwt1n4zdgy9zxbxc22t8w66tr7q/T/', 'LSCOLORS': 'ExFxBxDxCxegedabagacad', 'CLICOLOR': '1', '__CF_USER_TEXT_ENCODING': '0xC6D60F7:0:0', 'PWD': '/Users/kirkhamj/Developer/Conda/conda-forge/feedstocks/feedstocks/apache-libcloud', 'GHC_DOT_APP': '/Applications/ghc-7.8.3.app', '__CHECKFIX1436934': '1', 'CONDA_PATH_BACKUP': '/Applications/PyCharm CE.app/Contents/MacOS:/Users/kirkhamj/bin:/Users/kirkhamj/Library/Haskell/bin:/usr/local/packer/:/usr/local/jython2.5.3/:/usr/local/gfortran/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/local/MacGPG2/bin:/Library/TeX/texbin'}\r\n>>> print(os.environ[\"PATH\"])\r\n/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:/zopt/conda2/envs/nanshenv/bin:\r\n```", + "score": 0.24389441 + }, + { + "url": "https://api.github.com/repos/saltstack/salt/issues/34170", + "repository_url": "https://api.github.com/repos/saltstack/salt", + "labels_url": "https://api.github.com/repos/saltstack/salt/issues/34170/labels{/name}", + "comments_url": "https://api.github.com/repos/saltstack/salt/issues/34170/comments", + "events_url": "https://api.github.com/repos/saltstack/salt/issues/34170/events", + "html_url": "https://github.com/saltstack/salt/issues/34170", + "id": 161438301, + "number": 34170, + "title": "ps.top raises ValueError \"too many values to unpack\" when psutil > 4.1.0", + "user": { + "login": "rodoyle", + "id": 1016172, + "avatar_url": "https://avatars.githubusercontent.com/u/1016172?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/rodoyle", + "html_url": "https://github.com/rodoyle", + "followers_url": "https://api.github.com/users/rodoyle/followers", + "following_url": "https://api.github.com/users/rodoyle/following{/other_user}", + "gists_url": "https://api.github.com/users/rodoyle/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rodoyle/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rodoyle/subscriptions", + "organizations_url": "https://api.github.com/users/rodoyle/orgs", + "repos_url": "https://api.github.com/users/rodoyle/repos", + "events_url": "https://api.github.com/users/rodoyle/events{/privacy}", + "received_events_url": "https://api.github.com/users/rodoyle/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Bug", + "name": "Bug", + "color": "e11d21" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Execution%20Module", + "name": "Execution Module", + "color": "006b75" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/High%20Severity", + "name": "High Severity", + "color": "ff9143" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/P4", + "name": "P4", + "color": "031a39" + }, + { + "url": "https://api.github.com/repos/saltstack/salt/labels/Platform", + "name": "Platform", + "color": "fef2c0" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/saltstack/salt/milestones/13", + "html_url": "https://github.com/saltstack/salt/milestones/Approved", + "labels_url": "https://api.github.com/repos/saltstack/salt/milestones/13/labels", + "id": 9265, + "number": 13, + "title": "Approved", + "description": "All issues that are ready to be worked on, both bugs and features.", + "creator": { + "login": "thatch45", + "id": 507599, + "avatar_url": "https://avatars.githubusercontent.com/u/507599?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/thatch45", + "html_url": "https://github.com/thatch45", + "followers_url": "https://api.github.com/users/thatch45/followers", + "following_url": "https://api.github.com/users/thatch45/following{/other_user}", + "gists_url": "https://api.github.com/users/thatch45/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thatch45/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thatch45/subscriptions", + "organizations_url": "https://api.github.com/users/thatch45/orgs", + "repos_url": "https://api.github.com/users/thatch45/repos", + "events_url": "https://api.github.com/users/thatch45/events{/privacy}", + "received_events_url": "https://api.github.com/users/thatch45/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 3040, + "closed_issues": 3781, + "state": "open", + "created_at": "2011-05-14T04:00:56Z", + "updated_at": "2016-06-21T19:49:47Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2016-06-21T13:35:15Z", + "updated_at": "2016-06-21T17:50:32Z", + "closed_at": null, + "body": "### Description of Issue/Question\r\n1. ```salt-call pip.install psutil``` \r\noutput: installs psutil 4.3.0 (current stable release)\r\n\r\n2. ```salt-call ps.top```\r\noutput:\r\n```\r\nTraceback (most recent call last):\r\n File \"/usr/bin/salt-call\", line 11, in \r\n salt_call()\r\n File \"/usr/lib/python2.7/dist-packages/salt/scripts.py\", line 345, in salt_call\r\n client.run()\r\n File \"/usr/lib/python2.7/dist-packages/salt/cli/call.py\", line 58, in run\r\n caller.run()\r\n File \"/usr/lib/python2.7/dist-packages/salt/cli/caller.py\", line 134, in run\r\n ret = self.call()\r\n File \"/usr/lib/python2.7/dist-packages/salt/cli/caller.py\", line 197, in call\r\n ret['return'] = func(*args, **kwargs)\r\n File \"/usr/lib/python2.7/dist-packages/salt/modules/ps.py\", line 135, in top\r\n user, system = process.cpu_times()\r\n```\r\n\r\nInvestigating this on the minion:\r\n```\r\n>>> process = psutil.Process(1)\r\n>>> process.cpu_times()\r\npcputimes(user=0.56, system=2.52, children_user=1088.18, children_system=73.1)\r\n```\r\npsutil.Process.cpu_times() now returns more than expected two values on Linux but not windows and OS X according to the documentation.\r\n\r\nSalt documentation does not mention a requirement for psutil <=4.10 and the module does not handle the newer return value. Searching the issues for 'psutil' turns up several compatibility issues elsewhere, but none in the ps.top module. It is possible this issue is part of a larger cross-platform compatibility problem in the ps module.\r\n\r\n### Setup\r\n(Please provide relevant configs and/or SLS files (Be sure to remove sensitive info).)\r\n- None, purely built in modules\r\n\r\npsutil should be version 4.3.0\r\n\r\nIn 4.1.0 new fields were added, \"Changed in version 4.1.0: return two extra fields: children_user and children_system.\" [http://pythonhosted.org/psutil/](url)\r\n\r\n### Steps to Reproduce Issue\r\n(Include debug logs if possible and relevant.)\r\n\r\n1. install default psutil from pip on minion with ubuntu 14.04 LTS \r\n2. use built in ps.util module from either locally or remotely\r\n\r\n### Versions Report\r\n(Provided by running `salt --versions-report`. Please also mention any differences in master/minion versions.)\r\n\r\nSalt Version:\r\n Salt: 2016.3.1 (as on master)\r\n \r\n Dependency Versions:\r\n cffi: Not Installed\r\n cherrypy: Not Installed\r\n dateutil: 1.5\r\n gitdb: Not Installed\r\n gitpython: Not Installed\r\n ioflo: Not Installed\r\n Jinja2: 2.7.2\r\n libgit2: Not Installed\r\n libnacl: Not Installed\r\n M2Crypto: Not Installed\r\n Mako: 0.9.1\r\n msgpack-pure: Not Installed\r\n msgpack-python: 0.3.0\r\n mysql-python: 1.2.3\r\n pycparser: Not Installed\r\n pycrypto: 2.6.1\r\n pygit2: Not Installed\r\n Python: 2.7.6 (default, Jun 22 2015, 17:58:13)\r\n python-gnupg: Not Installed\r\n PyYAML: 3.10\r\n PyZMQ: 14.0.1\r\n RAET: Not Installed\r\n smmap: Not Installed\r\n timelib: Not Installed\r\n Tornado: 4.2.1\r\n ZMQ: 4.0.5\r\n \r\n System Versions:\r\n dist: Ubuntu 14.04 trusty\r\n machine: x86_64\r\n release: 3.19.0-61-generic\r\n system: Linux\r\n version: Ubuntu 14.04 trusty", + "score": 1.654835 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:26 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "325039", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "22", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "link": "; rel=\"first\", ; rel=\"prev\"", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "8a5c38021a5cd7cef7b8f49a296fee40", + "x-github-request-id": "AE1408AB:F64F:5FC3CF7:5769F4BD" + } + }, + { + "scope": "https://api.github.com:443", + "method": "GET", + "path": "/search/users?q=tom+repos:%3E42+followers:%3E1000&type=all&sort=updated&per_page=100", + "body": "", + "status": 200, + "response": { + "total_count": 4, + "incomplete_results": false, + "items": [ + { + "login": "mojombo", + "id": 1, + "avatar_url": "https://avatars.githubusercontent.com/u/1?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/mojombo", + "html_url": "https://github.com/mojombo", + "followers_url": "https://api.github.com/users/mojombo/followers", + "following_url": "https://api.github.com/users/mojombo/following{/other_user}", + "gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mojombo/subscriptions", + "organizations_url": "https://api.github.com/users/mojombo/orgs", + "repos_url": "https://api.github.com/users/mojombo/repos", + "events_url": "https://api.github.com/users/mojombo/events{/privacy}", + "received_events_url": "https://api.github.com/users/mojombo/received_events", + "type": "User", + "site_admin": false, + "score": 41.889614 + }, + { + "login": "tmcw", + "id": 32314, + "avatar_url": "https://avatars.githubusercontent.com/u/32314?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tmcw", + "html_url": "https://github.com/tmcw", + "followers_url": "https://api.github.com/users/tmcw/followers", + "following_url": "https://api.github.com/users/tmcw/following{/other_user}", + "gists_url": "https://api.github.com/users/tmcw/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tmcw/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tmcw/subscriptions", + "organizations_url": "https://api.github.com/users/tmcw/orgs", + "repos_url": "https://api.github.com/users/tmcw/repos", + "events_url": "https://api.github.com/users/tmcw/events{/privacy}", + "received_events_url": "https://api.github.com/users/tmcw/received_events", + "type": "User", + "site_admin": false, + "score": 33.511692 + }, + { + "login": "tomdale", + "id": 90888, + "avatar_url": "https://avatars.githubusercontent.com/u/90888?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tomdale", + "html_url": "https://github.com/tomdale", + "followers_url": "https://api.github.com/users/tomdale/followers", + "following_url": "https://api.github.com/users/tomdale/following{/other_user}", + "gists_url": "https://api.github.com/users/tomdale/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tomdale/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tomdale/subscriptions", + "organizations_url": "https://api.github.com/users/tomdale/orgs", + "repos_url": "https://api.github.com/users/tomdale/repos", + "events_url": "https://api.github.com/users/tomdale/events{/privacy}", + "received_events_url": "https://api.github.com/users/tomdale/received_events", + "type": "User", + "site_admin": false, + "score": 20.284273 + }, + { + "login": "tommy351", + "id": 411425, + "avatar_url": "https://avatars.githubusercontent.com/u/411425?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/tommy351", + "html_url": "https://github.com/tommy351", + "followers_url": "https://api.github.com/users/tommy351/followers", + "following_url": "https://api.github.com/users/tommy351/following{/other_user}", + "gists_url": "https://api.github.com/users/tommy351/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tommy351/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tommy351/subscriptions", + "organizations_url": "https://api.github.com/users/tommy351/orgs", + "repos_url": "https://api.github.com/users/tommy351/repos", + "events_url": "https://api.github.com/users/tommy351/events{/privacy}", + "received_events_url": "https://api.github.com/users/tommy351/received_events", + "type": "User", + "site_admin": false, + "score": 13.695011 + } + ] + }, + "headers": { + "server": "GitHub.com", + "date": "Wed, 22 Jun 2016 02:15:27 GMT", + "content-type": "application/json; charset=utf-8", + "content-length": "3524", + "connection": "close", + "status": "200 OK", + "x-ratelimit-limit": "30", + "x-ratelimit-remaining": "21", + "x-ratelimit-reset": "1466561771", + "cache-control": "no-cache", + "x-github-media-type": "github.v3; format=json", + "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", + "access-control-allow-origin": "*", + "content-security-policy": "default-src 'none'", + "strict-transport-security": "max-age=31536000; includeSubdomains; preload", + "x-content-type-options": "nosniff", + "x-frame-options": "deny", + "x-xss-protection": "1; mode=block", + "vary": "Accept-Encoding", + "x-served-by": "d594a23ec74671eba905bf91ef329026", + "x-github-request-id": "AE1408AB:F650:7A5C16E:5769F4BF" + } + } +] \ No newline at end of file diff --git a/test/helpers/callbacks.js b/test/helpers/callbacks.js index 1f9c3dc7..112464ac 100644 --- a/test/helpers/callbacks.js +++ b/test/helpers/callbacks.js @@ -5,7 +5,7 @@ const STANDARD_DELAY = 200; // 200ms between nested calls to the API so things s export function assertSuccessful(done, cb) { return function successCallback(err, res, xhr) { try { - expect(err).not.to.exist(err ? err.response.data : 'No error'); + expect(err).not.to.exist(err ? (err.response ? err.response.data : err) : 'No error'); expect(res).to.exist(); expect(xhr).to.be.an.object(); diff --git a/test/issue.spec.js b/test/issue.spec.js index ce502cec..e3d0bb78 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -165,6 +165,7 @@ describe('Issue', function() { description: 'Version 6 * 7' }; + expect(createdMilestoneId).to.be.a.number(); remoteIssues.editMilestone(createdMilestoneId, milestone) .then(({data: createdMilestone}) => { expect(createdMilestone).to.have.own('number', createdMilestoneId); @@ -174,6 +175,7 @@ describe('Issue', function() { }).catch(done); }); it('should delete a milestone', function(done) { + expect(createdMilestoneId).to.be.a.number(); remoteIssues.deleteMilestone(createdMilestoneId) .then(({status}) => { expect(status).to.equal(204); diff --git a/test/search.spec.js b/test/search.spec.js index c53326d1..93d852da 100644 --- a/test/search.spec.js +++ b/test/search.spec.js @@ -1,4 +1,5 @@ import expect from 'must'; +import nock from 'nock'; import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; @@ -13,6 +14,7 @@ describe('Search', function() { password: testUser.PASSWORD, auth: 'basic' }); + nock.load('test/fixtures/search.json'); }); it('should search repositories', function() { @@ -70,4 +72,9 @@ describe('Search', function() { expect(data.length).to.be.above(0); }); }); + + after(function() { + nock.cleanAll(); + nock.restore(); + }); }); From 44c072c867bb8eef0885c352a164eaafa08b7d6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Vit=C3=A1k?= Date: Mon, 27 Jun 2016 14:54:58 -0700 Subject: [PATCH 063/137] chore: Added protocol in CDN example of the README closes #356 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 28f61b90..ec976fe5 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ npm install github-api ```html - + - + ``` ## Compatibility From 83775a17d97af1373128bf422b1c01d3a37097e3 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Sat, 2 Jul 2016 23:41:27 +0100 Subject: [PATCH 064/137] feature(issue): add createLabel (#357) fixes #328 --- lib/Issue.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/Issue.js b/lib/Issue.js index d5c03d4a..07fa2b1a 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -190,6 +190,17 @@ class Issue extends Requestable { deleteMilestone(milestone, cb) { return this._request('DELETE', `/repos/${this.__repository}/milestones/${milestone}`, null, cb); } + + /** + * Create a new label + * @see https://developer.github.com/v3/issues/labels/#create-a-label + * @param {Object} labelData - the label definition + * @param {Requestable.callback} [cb] - will receive the object representing the label + * @return {Promise} - the promise for the http request + */ + createLabel(labelData, cb) { + return this._request('POST', `/repos/${this.__repository}/labels`, labelData, cb); + } } module.exports = Issue; From 609491e9f7498f7736f607d834330c7fe08dffbb Mon Sep 17 00:00:00 2001 From: Marco Breiter Date: Mon, 22 Aug 2016 22:00:52 +0200 Subject: [PATCH 065/137] docs: Update documentation to include 2.0.0 breaking changes (#371) ci skip --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ec976fe5..04d7478c 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ me.listNotifications(function(err, notifcations) { }); const clayreimann = gh.getUser('clayreimann'); -clayreimann.getStarredRepos() +clayreimann.listStarredRepos() .then(function({data: reposJson}) { // do stuff with reposJson }); @@ -103,7 +103,7 @@ var gh = new GitHub({ }); var yahoo = gh.getOrganization('yahoo'); -yahoo.getRepos(function(err, repos) { +yahoo.listRepos(function(err, repos) { // look at all the repos! }) ``` From 5b790f5843843fcc16a86a62cacccb132dbb47cc Mon Sep 17 00:00:00 2001 From: npmcdn-to-unpkg-bot Date: Wed, 31 Aug 2016 22:51:06 +0100 Subject: [PATCH 066/137] Replace npmcdn.com with unpkg.com (#375) --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 04d7478c..560edc9a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Github.js provides a minimal higher-level wrapper around Github's API. It was co ## [Read the docs][docs] ## Installation -Github.js is available from `npm` or [npmcdn][npmcdn]. +Github.js is available from `npm` or [unpkg][unpkg]. ```shell npm install github-api @@ -20,10 +20,10 @@ npm install github-api ```html - + - + ``` ## Compatibility @@ -112,7 +112,7 @@ yahoo.listRepos(function(err, repos) { [docs]: http://michael.github.io/github/ [gitter]: https://gitter.im/michael/github [npm-package]: https://www.npmjs.com/package/github-api/ -[npmcdn]: https://npmcdn.com/github-api/ +[unpkg]: https://unpkg.com/github-api/ [prose]: http://prose.io [travis-ci]: https://travis-ci.org/michael/github [xhr-link]: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx From 44a6aa6576ba9be04817ac3eed04268f63712e2c Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 31 Aug 2016 19:43:44 -0500 Subject: [PATCH 067/137] Fix gist example. Closes #374 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 560edc9a..f5fcae8b 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ gist.create({ description: 'My first gist', files: { "file1.txt": { - contents: "Aren't gists great!" + content: "Aren't gists great!" } } }).then(function({data}) { From 91aaf86d2fe586f953beb7107d521a66d4441469 Mon Sep 17 00:00:00 2001 From: Connor Cartwright Date: Mon, 12 Sep 2016 18:02:47 +0100 Subject: [PATCH 068/137] chore: fix spelling mistake in the README [ci skip] closes #379 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5fcae8b..a7828852 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ const gh = new GitHub({ }); const me = gh.getUser(); -me.listNotifications(function(err, notifcations) { +me.listNotifications(function(err, notifications) { // do some stuff }); From efb8c16ea4e82f6603d9e8c4e8958f66116d9e85 Mon Sep 17 00:00:00 2001 From: mironal Date: Tue, 6 Sep 2016 11:15:42 +0900 Subject: [PATCH 069/137] fix(repository): fix URL for deleting a hook closes #378 --- lib/Repository.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index de77ae48..8832533a 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -547,7 +547,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteHook(id, cb) { - return this._request('DELETE', `${this.__repoPath}/hooks/${id}`, null, cb); + return this._request('DELETE', `/repos/${this.__fullname}/hooks/${id}`, null, cb); } /** From 14b7023747d5ba8614d7a4f83ab3eb8b1ae22898 Mon Sep 17 00:00:00 2001 From: mironal Date: Fri, 2 Sep 2016 15:47:58 +0900 Subject: [PATCH 070/137] feature(repository): support deploy key API close #376 --- lib/Repository.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 8832533a..09107508 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -550,6 +550,49 @@ class Repository extends Requestable { return this._request('DELETE', `/repos/${this.__fullname}/hooks/${id}`, null, cb); } + /** + * List the deploy keys for the repository + * @see https://developer.github.com/v3/repos/keys/#list-deploy-keys + * @param {Requestable.callback} cb - will receive the list of deploy keys + * @return {Promise} - the promise for the http request + */ + listKeys(cb) { + return this._request('GET', `/repos/${this.__fullname}/keys`, null, cb); + } + + /** + * Get a deploy key for the repository + * @see https://developer.github.com/v3/repos/keys/#get-a-deploy-key + * @param {number} id - the id of the deploy key + * @param {Requestable.callback} cb - will receive the details of the deploy key + * @return {Promise} - the promise for the http request + */ + getKey(id, cb) { + return this._request('GET', `/repos/${this.__fullname}/keys/${id}`, null, cb); + } + + /** + * Add a new deploy key to the repository + * @see https://developer.github.com/v3/repos/keys/#add-a-new-deploy-key + * @param {Object} options - the configuration describing the new deploy key + * @param {Requestable.callback} cb - will receive the new deploy key + * @return {Promise} - the promise for the http request + */ + createKey(options, cb) { + return this._request('POST', `/repos/${this.__fullname}/keys`, options, cb); + } + + /** + * Delete a deploy key + * @see https://developer.github.com/v3/repos/keys/#remove-a-deploy-key + * @param {number} id - the id of the deploy key to be deleted + * @param {Requestable.callback} cb - will receive true if the call is successful + * @return {Promise} - the promise for the http request + */ + deleteKey(id, cb) { + return this._request('DELETE', `/repos/${this.__fullname}/keys/${id}`, null, cb); + } + /** * Delete a file from a branch * @see https://developer.github.com/v3/repos/contents/#delete-a-file From 7a5d9d007dac31418892d3d7afe7ea7a31404435 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Thu, 14 Jul 2016 11:20:10 +0100 Subject: [PATCH 071/137] fix(repository): Added updatePullRequest method This change deprecates the updatePullRequst method fixes #362 closes #365 --- lib/Repository.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 09107508..eda00ffe 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -485,6 +485,7 @@ class Repository extends Requestable { /** * Update a pull request + * @deprecated since version 2.4.0 * @see https://developer.github.com/v3/pulls/#update-a-pull-request * @param {number|string} number - the number of the pull request to update * @param {Object} options - the pull request description @@ -492,6 +493,20 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ updatePullRequst(number, options, cb) { + log('Deprecated: This method contains a typo and it has been deprecated. It will be removed in next major version. Use updatePullRequest() instead.'); + + return this.updatePullRequest(number, options, cb); + } + + /** + * Update a pull request + * @see https://developer.github.com/v3/pulls/#update-a-pull-request + * @param {number|string} number - the number of the pull request to update + * @param {Object} options - the pull request description + * @param {Requestable.callback} [cb] - will receive the pull request information + * @return {Promise} - the promise for the http request + */ + updatePullRequest(number, options, cb) { return this._request('PATCH', `/repos/${this.__fullname}/pulls/${number}`, options, cb); } From 00afe31078f22b5a45847a76aabc441a15e4c2c3 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Thu, 14 Jul 2016 11:10:54 +0100 Subject: [PATCH 072/137] fix(deleteHook): Use the full name of the repository fixes #363 closes #364 --- lib/Repository.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index eda00ffe..f676a04f 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -562,7 +562,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteHook(id, cb) { - return this._request('DELETE', `/repos/${this.__fullname}/hooks/${id}`, null, cb); + return this._request('DELETE', `${this.__fullname}/hooks/${id}`, null, cb); } /** From fb0669cf41e3d2f2c40f2963cd791697ef9772f8 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Wed, 15 Jun 2016 17:03:44 +0100 Subject: [PATCH 073/137] chore: updated callbacks to be Requestable.callback closes #380 --- lib/Repository.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index f676a04f..4b3090cb 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -762,7 +762,7 @@ class Repository extends Requestable { /** * Get information about a release * @see https://developer.github.com/v3/repos/releases/#get-a-single-release - * @param {strign} id - the id of the release + * @param {string} id - the id of the release * @param {Requestable.callback} cb - will receive the release information * @return {Promise} - the promise for the http request */ From 19b618493952338937b18bb0ee61793bc1b727b5 Mon Sep 17 00:00:00 2001 From: David Buchan-Swanson Date: Fri, 26 Aug 2016 10:56:11 +1000 Subject: [PATCH 074/137] feature(repository): add getBranch closes #372 --- lib/Repository.js | 11 +++++++++++ test/repository.spec.js | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/Repository.js b/lib/Repository.js index 4b3090cb..301e1230 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -152,6 +152,17 @@ class Repository extends Requestable { return this._request('GET', `/repos/${this.__fullname}/git/blobs/${sha}`, null, cb, 'raw'); } + /** + * Get a single branch + * @see https://developer.github.com/v3/repos/branches/#get-branch + * @param {string} branch - the name of the branch to fetch + * @param {Requestable.callback} cb - will receive the branch from the API + * @returns {Promise} - the promise for the http request + */ + getBranch(branch, cb) { + return this._request('GET', `/repos/${this.__fullname}/branches/${branch}`, null, cb); + } + /** * Get a commit from the repository * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit diff --git a/test/repository.spec.js b/test/repository.spec.js index 3afaff07..f747878d 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -52,6 +52,14 @@ describe('Repository', function() { })); }); + it('should get a branch', function(done) { + remoteRepo.getBranch('master', assertSuccessful(done, function(err, content) { + expect(content.name).to.be('master'); + + done(); + })); + }); + it('should show repo contents', function(done) { remoteRepo.getContents('master', '', false, assertSuccessful(done, function(err, contents) { expect(contents).to.be.an.array(); From 9208c614c0623feecf899cc5cdb64f3d5b10a0a8 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Fri, 16 Sep 2016 16:20:20 +0100 Subject: [PATCH 075/137] chore: update changelog --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 925b11c1..035944d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Change Log +## 2.4.0 - 2016/09/16 +### Features +* add `Issue.createLabel` +* add `Repository.createKey` +* add `Repository.deleteKey` +* add `Repository.getBranch` +* add `Repository.listKeys` +* add `Repository.getKey` +* add `Repository.updatePullRequest` +* deprecate `Repository.updatePullRequst` + +### Fixes +* Request URL for deleting a hook (`Repository.deleteHook`) + ## 2.3.0 - 2016/06/17 ### Features * add `Repository.mergePullRequest` From 96cc1acdfdb2d76013858af38f900d7b4f513713 Mon Sep 17 00:00:00 2001 From: Aurelio De Rosa Date: Fri, 16 Sep 2016 16:23:37 +0100 Subject: [PATCH 076/137] 2.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15d451a0..c942525d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "2.3.0", + "version": "2.4.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 78a98b167ff7ddd343110e8b96c723110d2f6350 Mon Sep 17 00:00:00 2001 From: David Buchan-Swanson Date: Mon, 21 Nov 2016 06:48:16 +1000 Subject: [PATCH 077/137] update the link to the docs (#402) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a7828852..17ba8db5 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ yahoo.listRepos(function(err, repos) { ``` [codecov]: https://codecov.io/github/michael/github?branch=master -[docs]: http://michael.github.io/github/ +[docs]: http://github-tools.github.io/github/ [gitter]: https://gitter.im/michael/github [npm-package]: https://www.npmjs.com/package/github-api/ [unpkg]: https://unpkg.com/github-api/ From 6ec1d0b5d1a8c52a3707a43a5dc5f0465f6bdf5a Mon Sep 17 00:00:00 2001 From: Mathieu Dutour Date: Wed, 30 Nov 2016 21:41:17 +0000 Subject: [PATCH 078/137] chore: fix tests and bump to 3.x (#401) * add getContributorStats * add labels methods * add updateStatus and updateRepository method * add project api and fix tests * improve release script * remove prepublish script * request all pages for cards * add getEmails * remove polyfill * drop support for node < 4 / test on node 4-6 * add coverage * remove clearRepo --- .gitignore | 3 +- .npmignore | 3 +- .travis.yml | 9 +- README.md | 116 +++++++--------- gulpfile.babel.js | 12 +- lib/GitHub.js | 10 ++ lib/Issue.js | 53 ++++++- lib/Markdown.js | 4 +- lib/Organization.js | 23 ++++ lib/Project.js | 236 ++++++++++++++++++++++++++++++++ lib/Repository.js | 114 +++++++++++---- lib/Requestable.js | 51 ++++--- lib/User.js | 10 ++ package.json | 53 ++++--- release.sh | 11 +- test/auth.spec.js | 6 +- test/gist.spec.js | 2 +- test/helpers/callbacks.js | 1 - test/helpers/helperFunctions.js | 43 ++++++ test/helpers/wait.js | 5 + test/issue.spec.js | 102 +++++++++++++- test/markdown.spec.js | 6 +- test/organization.spec.js | 53 +++++-- test/project.spec.js | 171 +++++++++++++++++++++++ test/rate-limit.spec.js | 2 +- test/repository.spec.js | 124 +++++++++++++---- test/search.spec.js | 12 +- test/team.spec.js | 71 ++++++++-- test/user.spec.js | 10 +- 29 files changed, 1079 insertions(+), 237 deletions(-) create mode 100644 lib/Project.js create mode 100644 test/helpers/helperFunctions.js create mode 100644 test/helpers/wait.js create mode 100644 test/project.spec.js diff --git a/.gitignore b/.gitignore index 6d462a19..db3cda2f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,8 @@ docs/ dist/ coverage/ node_modules/ - +.nyc_output/ +/out/ .DS_Store npm-debug.log sauce.json diff --git a/.npmignore b/.npmignore index 15fff57d..fe969272 100644 --- a/.npmignore +++ b/.npmignore @@ -1,6 +1,7 @@ docs/ coverage/ node_modules/ - +lib/ +.nyc_output/ .DS_Store sauce.json diff --git a/.travis.yml b/.travis.yml index c00581ca..26f56aa3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,7 @@ node_js: - '6' - '5' - '4' - - '0.12' - + cache: directories: - node_modules @@ -14,10 +13,10 @@ before_script: - npm run lint # - npm run build # will need this when we do sauce testing of compiled files script: - - npm test + - npm run test-coverage # - npm run test-dist # test the compiled files -# after_success: -# - npm run codecov # disabled temporarialy while I work out how to generate accurate coverage of ES2015 code +after_success: + - npm run codecov before_deploy: - npm run build deploy: diff --git a/README.md b/README.md index 17ba8db5..919b5eb3 100644 --- a/README.md +++ b/README.md @@ -2,50 +2,19 @@ [![Downloads per month](https://img.shields.io/npm/dm/github-api.svg?maxAge=2592000)][npm-package] [![Latest version](https://img.shields.io/npm/v/github-api.svg?maxAge=3600)][npm-package] -[![Gitter](https://img.shields.io/gitter/room/michael/github.js.svg?maxAge=2592000)][gitter] -[![Travis](https://img.shields.io/travis/michael/github.svg?maxAge=60)][travis-ci] - +[![Gitter](https://img.shields.io/gitter/room/github-tools/github.js.svg?maxAge=2592000)][gitter] +[![Travis](https://img.shields.io/travis/github-tools/github.svg?maxAge=60)][travis-ci] +[![Codecov](https://img.shields.io/codecov/c/github/github-tools/github.svg?maxAge=2592000)][codecov] -Github.js provides a minimal higher-level wrapper around Github's API. It was concieved in the context of -[Prose][prose], a content editor for GitHub. +Github.js provides a minimal higher-level wrapper around Github's API. -## [Read the docs][docs] - -## Installation -Github.js is available from `npm` or [unpkg][unpkg]. - -```shell -npm install github-api -``` - -```html - - - - - -``` - -## Compatibility -Github.js is tested on Node: -* 6.x -* 5.x -* 4.x -* 0.12 - -## GitHub Tools - -The team behind Github.js has created a whole organization, called [GitHub Tools](https://github.com/github-tools), -dedicated to GitHub and its API. In the near future this repository could be moved under the GitHub Tools organization -as well. In the meantime, we recommend you to take a look at other projects of the organization. - -## Samples +## Usage ```javascript /* Data can be retrieved from the API either using callbacks (as in versions < 1.0) - or using a new promise-based API. For now the promise-based API just returns the - raw HTTP request promise; this might change in the next version. + or using a new promise-based API. The promise-based API returns the raw Axios + request promise. */ import GitHub from 'github-api'; @@ -62,57 +31,66 @@ gist.create({ } }).then(function({data}) { // Promises! - let gistJson = data; - gist.read(function(err, gist, xhr) { - // if no error occurred then err == null - - // gistJson === httpResponse.data - - // xhr === httpResponse - }); + let createdGist = data; + return gist.read(); +}).then(function({data}) { + let retrievedGist = data; + // do interesting things }); ``` ```javascript -import GitHub from 'github-api'; +var GitHub = require('github-api'); // basic auth -const gh = new GitHub({ +var gh = new GitHub({ username: 'FOO', password: 'NotFoo' + /* also acceptable: + token: 'MY_OAUTH_TOKEN' + */ }); -const me = gh.getUser(); +var me = gh.getUser(); // no user specified defaults to the user for whom credentials were provided me.listNotifications(function(err, notifications) { // do some stuff }); -const clayreimann = gh.getUser('clayreimann'); -clayreimann.listStarredRepos() - .then(function({data: reposJson}) { - // do stuff with reposJson - }); +var clayreimann = gh.getUser('clayreimann'); +clayreimann.listStarredRepos(function(err, repos) { + // look at all the starred repos! +}); ``` -```javascript -var GitHub = require('github-api'); +## API Documentation -// token auth -var gh = new GitHub({ - token: 'MY_OAUTH_TOKEN' -}); +[API documentation][docs] is hosted on github pages, and is generated from JSDoc; any contributions +should include updated JSDoc. + +## Installation +Github.js is available from `npm` or [unpkg][unpkg]. -var yahoo = gh.getOrganization('yahoo'); -yahoo.listRepos(function(err, repos) { - // look at all the repos! -}) +```shell +npm install github-api ``` -[codecov]: https://codecov.io/github/michael/github?branch=master +```html + + + + + +``` + +## Compatibility +`Github.js` is tested on Node.js: +* 6.x + +Note: `Github.js` uses Promise, hence it will not work in Node.js < 4 without polyfill. + +[codecov]: https://codecov.io/github/github-tools/github?branch=master [docs]: http://github-tools.github.io/github/ -[gitter]: https://gitter.im/michael/github +[gitter]: https://gitter.im/github-tools/github [npm-package]: https://www.npmjs.com/package/github-api/ [unpkg]: https://unpkg.com/github-api/ -[prose]: http://prose.io -[travis-ci]: https://travis-ci.org/michael/github -[xhr-link]: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx +[travis-ci]: https://travis-ci.org/github-tools/github diff --git a/gulpfile.babel.js b/gulpfile.babel.js index c3d669f5..9965f7aa 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -13,7 +13,7 @@ import uglify from 'gulp-uglify'; const ALL_SOURCES = [ '*.js', 'lib/*.js', - 'test/*.js' + 'test/*.js', ]; gulp.task('lint', function() { @@ -33,13 +33,13 @@ gulp.task('build', [ 'build:external:min', 'build:bundled:debug', 'build:external:debug', - 'build:components' + 'build:components', ]); const bundledConfig = { debug: true, entries: 'lib/GitHub.js', - standalone: 'GitHub' + standalone: 'GitHub', }; const externalConfig = { debug: true, @@ -50,9 +50,9 @@ const externalConfig = { 'js-base64', 'es6-promise', 'debug', - 'utf8' + 'utf8', ], - bundleExternal: false + bundleExternal: false, }; gulp.task('build:bundled:min', function() { return buildBundle(bundledConfig, '.bundle.min.js', true); @@ -82,7 +82,7 @@ function buildBundle(options, extname, minify) { .pipe(source('GitHub.js')) .pipe(buffer()) .pipe(sourcemaps.init({ - loadMaps: true + loadMaps: true, })); if (minify) { diff --git a/lib/GitHub.js b/lib/GitHub.js index 944fc868..59cb94ff 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -15,6 +15,7 @@ import Repository from './Repository'; import Organization from './Organization'; import Team from './Team'; import Markdown from './Markdown'; +import Project from './Project'; /** * GitHub encapsulates the functionality to create various API wrapper objects. @@ -113,6 +114,15 @@ class GitHub { return new Markdown(this.__auth, this.__apiBase); } + /** + * Create a new Project wrapper + * @param {string} id - the id of the project + * @return {Markdown} + */ + getProject(id) { + return new Project(id, this.__auth, this.__apiBase); + } + /** * Computes the full repository name * @param {string} user - the username (or the full name) diff --git a/lib/Issue.js b/lib/Issue.js index 07fa2b1a..c0151b5f 100644 --- a/lib/Issue.js +++ b/lib/Issue.js @@ -150,7 +150,7 @@ class Issue extends Requestable { * Get a milestone * @see https://developer.github.com/v3/issues/milestones/#get-a-single-milestone * @param {string} milestone - the id of the milestone to fetch - * @param {Requestable.callback} [cb] - will receive the array of milestones + * @param {Requestable.callback} [cb] - will receive the milestone * @return {Promise} - the promise for the http request */ getMilestone(milestone, cb) { @@ -161,7 +161,7 @@ class Issue extends Requestable { * Create a new milestone * @see https://developer.github.com/v3/issues/milestones/#create-a-milestone * @param {Object} milestoneData - the milestone definition - * @param {Requestable.callback} [cb] - will receive the array of milestones + * @param {Requestable.callback} [cb] - will receive the milestone * @return {Promise} - the promise for the http request */ createMilestone(milestoneData, cb) { @@ -173,7 +173,7 @@ class Issue extends Requestable { * @see https://developer.github.com/v3/issues/milestones/#update-a-milestone * @param {string} milestone - the id of the milestone to edit * @param {Object} milestoneData - the updates to make to the milestone - * @param {Requestable.callback} [cb] - will receive the array of milestones + * @param {Requestable.callback} [cb] - will receive the updated milestone * @return {Promise} - the promise for the http request */ editMilestone(milestone, milestoneData, cb) { @@ -184,7 +184,7 @@ class Issue extends Requestable { * Delete a milestone (this is distinct from closing a milestone) * @see https://developer.github.com/v3/issues/milestones/#delete-a-milestone * @param {string} milestone - the id of the milestone to delete - * @param {Requestable.callback} [cb] - will receive the array of milestones + * @param {Requestable.callback} [cb] - will receive the status * @return {Promise} - the promise for the http request */ deleteMilestone(milestone, cb) { @@ -201,6 +201,51 @@ class Issue extends Requestable { createLabel(labelData, cb) { return this._request('POST', `/repos/${this.__repository}/labels`, labelData, cb); } + + /** + * List the labels for the repository + * @see https://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository + * @param {Object} options - filtering options + * @param {Requestable.callback} [cb] - will receive the array of labels + * @return {Promise} - the promise for the http request + */ + listLabels(options, cb) { + return this._request('GET', `/repos/${this.__repository}/labels`, options, cb); + } + + /** + * Get a label + * @see https://developer.github.com/v3/issues/labels/#get-a-single-label + * @param {string} label - the name of the label to fetch + * @param {Requestable.callback} [cb] - will receive the label + * @return {Promise} - the promise for the http request + */ + getLabel(label, cb) { + return this._request('GET', `/repos/${this.__repository}/labels/${label}`, null, cb); + } + + /** + * Edit a label + * @see https://developer.github.com/v3/issues/labels/#update-a-label + * @param {string} label - the name of the label to edit + * @param {Object} labelData - the updates to make to the label + * @param {Requestable.callback} [cb] - will receive the updated label + * @return {Promise} - the promise for the http request + */ + editLabel(label, labelData, cb) { + return this._request('PATCH', `/repos/${this.__repository}/labels/${label}`, labelData, cb); + } + + /** + * Delete a label + * @see https://developer.github.com/v3/issues/labels/#delete-a-label + * @param {string} label - the name of the label to delete + * @param {Requestable.callback} [cb] - will receive the status + * @return {Promise} - the promise for the http request + */ + deleteLabel(label, cb) { + return this._request('DELETE', `/repos/${this.__repository}/labels/${label}`, null, cb); + } } module.exports = Issue; diff --git a/lib/Markdown.js b/lib/Markdown.js index cb84851d..edc346cc 100644 --- a/lib/Markdown.js +++ b/lib/Markdown.js @@ -8,11 +8,11 @@ import Requestable from './Requestable'; /** - * RateLimit allows users to query their rate-limit status + * Renders html from Markdown text */ class Markdown extends Requestable { /** - * construct a RateLimit + * construct a Markdown * @param {Requestable.auth} auth - the credentials to authenticate to GitHub * @param {string} [apiBase] - the base Github API URL * @return {Promise} - the promise for the http request diff --git a/lib/Organization.js b/lib/Organization.js index 78354a8c..0a8177b4 100644 --- a/lib/Organization.js +++ b/lib/Organization.js @@ -93,6 +93,29 @@ class Organization extends Requestable { createTeam(options, cb) { return this._request('POST', `/orgs/${this.__name}/teams`, options, cb); } + + /** + * Get information about all projects + * @see https://developer.github.com/v3/projects/#list-organization-projects + * @param {Requestable.callback} [cb] - will receive the list of projects + * @return {Promise} - the promise for the http request + */ + listProjects(cb) { + return this._requestAllPages(`/orgs/${this.__name}/projects`, {AcceptHeader: 'inertia-preview'}, cb); + } + + /** + * Create a new project + * @see https://developer.github.com/v3/repos/projects/#create-a-project + * @param {Object} options - the description of the project + * @param {Requestable.callback} cb - will receive the newly created project + * @return {Promise} - the promise for the http request + */ + createProject(options, cb) { + options = options || {}; + options.AcceptHeader = 'inertia-preview'; + return this._request('POST', `/orgs/${this.__name}/projects`, options, cb); + } } module.exports = Organization; diff --git a/lib/Project.js b/lib/Project.js new file mode 100644 index 00000000..ab31a078 --- /dev/null +++ b/lib/Project.js @@ -0,0 +1,236 @@ +/** + * @file + * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. + * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. + * Github.js is freely distributable. + */ + +import Requestable from './Requestable'; + +/** + * Project encapsulates the functionality to create, query, and modify cards and columns. + */ +class Project extends Requestable { + /** + * Create a Project. + * @param {string} id - the id of the project + * @param {Requestable.auth} [auth] - information required to authenticate to Github + * @param {string} [apiBase=https://api.github.com] - the base Github API URL + */ + constructor(id, auth, apiBase) { + super(auth, apiBase, 'inertia-preview'); + this.__id = id; + } + + /** + * Get information about a project + * @see https://developer.github.com/v3/projects/#get-a-project + * @param {Requestable.callback} cb - will receive the project information + * @return {Promise} - the promise for the http request + */ + getProject(cb) { + return this._request('GET', `/projects/${this.__id}`, null, cb); + } + + /** + * Edit a project + * @see https://developer.github.com/v3/projects/#update-a-project + * @param {Object} options - the description of the project + * @param {Requestable.callback} cb - will receive the modified project + * @return {Promise} - the promise for the http request + */ + updateProject(options, cb) { + return this._request('PATCH', `/projects/${this.__id}`, options, cb); + } + + /** + * Delete a project + * @see https://developer.github.com/v3/projects/#delete-a-project + * @param {Requestable.callback} cb - will receive true if the operation is successful + * @return {Promise} - the promise for the http request + */ + deleteProject(cb) { + return this._request('DELETE', `/projects/${this.__id}`, null, cb); + } + + /** + * Get information about all columns of a project + * @see https://developer.github.com/v3/projects/columns/#list-project-columns + * @param {Requestable.callback} [cb] - will receive the list of columns + * @return {Promise} - the promise for the http request + */ + listProjectColumns(cb) { + return this._requestAllPages(`/projects/${this.__id}/columns`, null, cb); + } + + /** + * Get information about a column + * @see https://developer.github.com/v3/projects/columns/#get-a-project-column + * @param {string} colId - the id of the column + * @param {Requestable.callback} cb - will receive the column information + * @return {Promise} - the promise for the http request + */ + getProjectColumn(colId, cb) { + return this._request('GET', `/projects/columns/${colId}`, null, cb); + } + + /** + * Create a new column + * @see https://developer.github.com/v3/projects/columns/#create-a-project-column + * @param {Object} options - the description of the column + * @param {Requestable.callback} cb - will receive the newly created column + * @return {Promise} - the promise for the http request + */ + createProjectColumn(options, cb) { + return this._request('POST', `/projects/${this.__id}/columns`, options, cb); + } + + /** + * Edit a column + * @see https://developer.github.com/v3/projects/columns/#update-a-project-column + * @param {string} colId - the column id + * @param {Object} options - the description of the column + * @param {Requestable.callback} cb - will receive the modified column + * @return {Promise} - the promise for the http request + */ + updateProjectColumn(colId, options, cb) { + return this._request('PATCH', `/projects/columns/${colId}`, options, cb); + } + + /** + * Delete a column + * @see https://developer.github.com/v3/projects/columns/#delete-a-project-column + * @param {string} colId - the column to be deleted + * @param {Requestable.callback} cb - will receive true if the operation is successful + * @return {Promise} - the promise for the http request + */ + deleteProjectColumn(colId, cb) { + return this._request('DELETE', `/projects/columns/${colId}`, null, cb); + } + + /** + * Move a column + * @see https://developer.github.com/v3/projects/columns/#move-a-project-column + * @param {string} colId - the column to be moved + * @param {string} position - can be one of first, last, or after:, + * where is the id value of a column in the same project. + * @param {Requestable.callback} cb - will receive true if the operation is successful + * @return {Promise} - the promise for the http request + */ + moveProjectColumn(colId, position, cb) { + return this._request( + 'POST', + `/projects/columns/${colId}/moves`, + {position: position}, + cb + ); + } + + /** + * Get information about all cards of a project + * @see https://developer.github.com/v3/projects/cards/#list-project-cards + * @param {Requestable.callback} [cb] - will receive the list of cards + * @return {Promise} - the promise for the http request + */ + listProjectCards(cb) { + return this.listProjectColumns() + .then(({data}) => { + return Promise.all(data.map((column) => { + return this._requestAllPages(`/projects/columns/${column.id}/cards`, null); + })); + }).then((cardsInColumns) => { + const cards = cardsInColumns.reduce((prev, {data}) => { + prev.push(...data); + return prev; + }, []); + if (cb) { + cb(null, cards); + } + return cards; + }).catch((err) => { + if (cb) { + cb(err); + return; + } + throw err; + }); + } + + /** + * Get information about all cards of a column + * @see https://developer.github.com/v3/projects/cards/#list-project-cards + * @param {string} colId - the id of the column + * @param {Requestable.callback} [cb] - will receive the list of cards + * @return {Promise} - the promise for the http request + */ + listColumnCards(colId, cb) { + return this._requestAllPages(`/projects/columns/${colId}/cards`, null, cb); + } + + /** + * Get information about a card + * @see https://developer.github.com/v3/projects/cards/#get-a-project-card + * @param {string} cardId - the id of the card + * @param {Requestable.callback} cb - will receive the card information + * @return {Promise} - the promise for the http request + */ + getProjectCard(cardId, cb) { + return this._request('GET', `/projects/columns/cards/${cardId}`, null, cb); + } + + /** + * Create a new card + * @see https://developer.github.com/v3/projects/cards/#create-a-project-card + * @param {string} colId - the column id + * @param {Object} options - the description of the card + * @param {Requestable.callback} cb - will receive the newly created card + * @return {Promise} - the promise for the http request + */ + createProjectCard(colId, options, cb) { + return this._request('POST', `/projects/columns/${colId}/cards`, options, cb); + } + + /** + * Edit a card + * @see https://developer.github.com/v3/projects/cards/#update-a-project-card + * @param {string} cardId - the card id + * @param {Object} options - the description of the card + * @param {Requestable.callback} cb - will receive the modified card + * @return {Promise} - the promise for the http request + */ + updateProjectCard(cardId, options, cb) { + return this._request('PATCH', `/projects/columns/cards/${cardId}`, options, cb); + } + + /** + * Delete a card + * @see https://developer.github.com/v3/projects/cards/#delete-a-project-card + * @param {string} cardId - the card to be deleted + * @param {Requestable.callback} cb - will receive true if the operation is successful + * @return {Promise} - the promise for the http request + */ + deleteProjectCard(cardId, cb) { + return this._request('DELETE', `/projects/columns/cards/${cardId}`, null, cb); + } + + /** + * Move a card + * @see https://developer.github.com/v3/projects/cards/#move-a-project-card + * @param {string} cardId - the card to be moved + * @param {string} position - can be one of top, bottom, or after:, + * where is the id value of a card in the same project. + * @param {string} colId - the id value of a column in the same project. + * @param {Requestable.callback} cb - will receive true if the operation is successful + * @return {Promise} - the promise for the http request + */ + moveProjectCard(cardId, position, colId, cb) { + return this._request( + 'POST', + `/projects/columns/cards/${cardId}/moves`, + {position: position, column_id: colId}, // eslint-disable-line camelcase + cb + ); + } +} + +module.exports = Project; diff --git a/lib/Repository.js b/lib/Repository.js index 301e1230..fb200397 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -8,7 +8,7 @@ import Requestable from './Requestable'; import Utf8 from 'utf8'; import { - Base64 + Base64, } from 'js-base64'; import debug from 'debug'; const log = debug('github:repository'); @@ -28,7 +28,7 @@ class Repository extends Requestable { this.__fullname = fullname; this.__currentTree = { branch: null, - sha: null + sha: null, }; } @@ -266,21 +266,21 @@ class Repository extends Requestable { log('contet is a string'); return { content: Utf8.encode(content), - encoding: 'utf-8' + encoding: 'utf-8', }; } else if (typeof Buffer !== 'undefined' && content instanceof Buffer) { log('We appear to be in Node'); return { content: content.toString('base64'), - encoding: 'base64' + encoding: 'base64', }; } else if (typeof Blob !== 'undefined' && content instanceof Blob) { log('We appear to be in the browser'); return { content: Base64.encode(content), - encoding: 'base64' + encoding: 'base64', }; } else { // eslint-disable-line @@ -306,8 +306,8 @@ class Repository extends Requestable { path: path, sha: blobSHA, mode: '100644', - type: 'blob' - }] + type: 'blob', + }], }; return this._request('POST', `/repos/${this.__fullname}/git/trees`, newTree, cb); @@ -324,7 +324,7 @@ class Repository extends Requestable { createTree(tree, baseSHA, cb) { return this._request('POST', `/repos/${this.__fullname}/git/trees`, { tree, - base_tree: baseSHA // eslint-disable-line + base_tree: baseSHA, // eslint-disable-line camelcase }, cb); } @@ -341,7 +341,7 @@ class Repository extends Requestable { let data = { message, tree, - parents: [parent] + parents: [parent], }; return this._request('POST', `/repos/${this.__fullname}/git/commits`, data, cb) @@ -363,11 +363,46 @@ class Repository extends Requestable { updateHead(ref, commitSHA, force, cb) { return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, { sha: commitSHA, - force: force + force: force, }, cb); } /** + * Update commit status + * @see https://developer.github.com/v3/repos/statuses/ + * @param {string} commitSHA - the SHA of the commit that should be updated + * @param {object} options - Commit status parameters + * @param {string} options.state - The state of the status. Can be one of: pending, success, error, or failure. + * @param {string} [options.target_url] - The target URL to associate with this status. + * @param {string} [options.description] - A short description of the status. + * @param {string} [options.context] - A string label to differentiate this status among CI systems. + * @param {Requestable.callback} cb - will receive the updated commit back + * @return {Promise} - the promise for the http request + */ + updateStatus(commitSHA, options, cb) { + return this._request('POST', `/repos/${this.__fullname}/statuses/${commitSHA}`, options, cb); + } + + /** + * Update repository information + * @see https://developer.github.com/v3/repos/#edit + * @param {object} options - New parameters that will be set to the repository + * @param {string} options.name - Name of the repository + * @param {string} [options.description] - A short description of the repository + * @param {string} [options.homepage] - A URL with more information about the repository + * @param {boolean} [options.private] - Either true to make the repository private, or false to make it public. + * @param {boolean} [options.has_issues] - Either true to enable issues for this repository, false to disable them. + * @param {boolean} [options.has_wiki] - Either true to enable the wiki for this repository, false to disable it. + * @param {boolean} [options.has_downloads] - Either true to enable downloads, false to disable them. + * @param {string} [options.default_branch] - Updates the default branch for this repository. + * @param {Requestable.callback} cb - will receive the updated repository back + * @return {Promise} - the promise for the http request + */ + updateRepository(options, cb) { + return this._request('PATCH', `/repos/${this.__fullname}`, options, cb); + } + + /** * Get information about the repository * @see https://developer.github.com/v3/repos/#get * @param {Requestable.callback} cb - will receive the information about the repository @@ -384,6 +419,16 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ getContributors(cb) { + return this._request('GET', `/repos/${this.__fullname}/contributors`, null, cb); + } + + /** + * List the contributor stats to the repository + * @see https://developer.github.com/v3/repos/#list-contributors + * @param {Requestable.callback} cb - will receive the list of contributors + * @return {Promise} - the promise for the http request + */ + getContributorStats(cb) { return this._request('GET', `/repos/${this.__fullname}/stats/contributors`, null, cb); } @@ -421,7 +466,7 @@ class Repository extends Requestable { getContents(ref, path, raw, cb) { path = path ? `${encodeURI(path)}` : ''; return this._request('GET', `/repos/${this.__fullname}/contents/${path}`, { - ref + ref, }, cb, raw); } @@ -435,7 +480,7 @@ class Repository extends Requestable { */ getReadme(ref, raw, cb) { return this._request('GET', `/repos/${this.__fullname}/readme`, { - ref + ref, }, cb, raw); } @@ -478,7 +523,7 @@ class Repository extends Requestable { let sha = response.data.object.sha; return this.createRef({ sha, - ref: `refs/heads/${newBranch}` + ref: `refs/heads/${newBranch}`, }, cb); }); } @@ -494,21 +539,6 @@ class Repository extends Requestable { return this._request('POST', `/repos/${this.__fullname}/pulls`, options, cb); } - /** - * Update a pull request - * @deprecated since version 2.4.0 - * @see https://developer.github.com/v3/pulls/#update-a-pull-request - * @param {number|string} number - the number of the pull request to update - * @param {Object} options - the pull request description - * @param {Requestable.callback} [cb] - will receive the pull request information - * @return {Promise} - the promise for the http request - */ - updatePullRequst(number, options, cb) { - log('Deprecated: This method contains a typo and it has been deprecated. It will be removed in next major version. Use updatePullRequest() instead.'); - - return this.updatePullRequest(number, options, cb); - } - /** * Update a pull request * @see https://developer.github.com/v3/pulls/#update-a-pull-request @@ -633,7 +663,7 @@ class Repository extends Requestable { const deleteCommit = { message: `Delete the file at '${path}'`, sha: response.data.sha, - branch + branch, }; return this._request('DELETE', `/repos/${this.__fullname}/contents/${path}`, deleteCommit, cb); }); @@ -694,7 +724,7 @@ class Repository extends Requestable { message, author: options.author, committer: options.committer, - content: shouldEncode ? Base64.encode(content) : content + content: shouldEncode ? Base64.encode(content) : content, }; return this.getSha(branch, filePath) @@ -803,6 +833,30 @@ class Repository extends Requestable { mergePullRequest(number, options, cb) { return this._request('PUT', `/repos/${this.__fullname}/pulls/${number}/merge`, options, cb); } + + /** + * Get information about all projects + * @see https://developer.github.com/v3/projects/#list-repository-projects + * @param {Requestable.callback} [cb] - will receive the list of projects + * @return {Promise} - the promise for the http request + */ + listProjects(cb) { + return this._requestAllPages(`/repos/${this.__fullname}/projects`, {AcceptHeader: 'inertia-preview'}, cb); + } + + /** + * Create a new project + * @see https://developer.github.com/v3/projects/#create-a-repository-project + * @param {Object} options - the description of the project + * @param {Requestable.callback} cb - will receive the newly created project + * @return {Promise} - the promise for the http request + */ + createProject(options, cb) { + options = options || {}; + options.AcceptHeader = 'inertia-preview'; + return this._request('POST', `/repos/${this.__fullname}/projects`, options, cb); + } + } module.exports = Repository; diff --git a/lib/Requestable.js b/lib/Requestable.js index 95c23bbd..8d39c04f 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -8,14 +8,9 @@ import axios from 'axios'; import debug from 'debug'; import {Base64} from 'js-base64'; -import {polyfill} from 'es6-promise'; const log = debug('github:request'); -if (typeof Promise === 'undefined') { - polyfill(); -} - /** * The error structure returned when a network call fails */ @@ -30,7 +25,7 @@ class ResponseError extends Error { super(message); this.path = path; this.request = response.config; - this.response = response; + this.response = (response || {}).response || response; this.status = response.status; } } @@ -51,14 +46,16 @@ class Requestable { * @param {Requestable.auth} [auth] - the credentials to authenticate to Github. If auth is * not provided request will be made unauthenticated * @param {string} [apiBase=https://api.github.com] - the base Github API URL + * @param {string} [AcceptHeader=v3] - the accept header for the requests */ - constructor(auth, apiBase) { + constructor(auth, apiBase, AcceptHeader) { this.__apiBase = apiBase || 'https://api.github.com'; this.__auth = { token: auth.token, username: auth.username, - password: auth.password + password: auth.password, }; + this.__AcceptHeader = AcceptHeader || 'v3'; if (auth.token) { this.__authorizationHeader = 'token ' + auth.token; @@ -88,14 +85,20 @@ class Requestable { * Compute the headers required for an API request. * @private * @param {boolean} raw - if the request should be treated as JSON or as a raw request + * @param {string} AcceptHeader - the accept header for the request * @return {Object} - the headers to use in the request */ - __getRequestHeaders(raw) { + __getRequestHeaders(raw, AcceptHeader) { let headers = { - 'Accept': raw ? 'application/vnd.github.v3.raw+json' : 'application/vnd.github.v3+json', - 'Content-Type': 'application/json;charset=UTF-8' + 'Content-Type': 'application/json;charset=UTF-8', + 'Accept': 'application/vnd.github.' + (AcceptHeader || this.__AcceptHeader), }; + if (raw) { + headers.Accept += '.raw'; + } + headers.Accept += '+json'; + if (this.__authorizationHeader) { headers.Authorization = this.__authorizationHeader; } @@ -152,7 +155,13 @@ class Requestable { */ _request(method, path, data, cb, raw) { const url = this.__getURL(path); - const headers = this.__getRequestHeaders(raw); + + const AcceptHeader = (data || {}).AcceptHeader; + if (AcceptHeader) { + delete data.AcceptHeader; + } + const headers = this.__getRequestHeaders(raw, AcceptHeader); + let queryParams = {}; const shouldUseDataAsParams = data && (typeof data === 'object') && methodHasNoBody(method); @@ -167,7 +176,7 @@ class Requestable { headers: headers, params: queryParams, data: data, - responseType: raw ? 'text' : 'json' + responseType: raw ? 'text' : 'json', }; log(`${config.method} to ${config.url}`); @@ -175,7 +184,15 @@ class Requestable { if (cb) { requestPromise.then((response) => { - cb(null, response.data || true, response); + if (response.data && Object.keys(response.data).length > 0) { + // When data has results + cb(null, response.data, response); + } else if (config.method !== 'GET' && Object.keys(response.data).length < 1) { + // True when successful submit a request and receive a empty object + cb(null, (response.status < 300), response); + } else { + cb(null, response.data, response); + } }); } @@ -198,7 +215,7 @@ class Requestable { } return true; }, function failure(response) { - if (response.status === 404) { + if (response.response.status === 404) { if (cb) { cb(null, false, response); } @@ -236,7 +253,7 @@ class Requestable { let message = `cannot figure out how to append ${response.data} to the result set`; throw new ResponseError(message, path, response); } - results.push.apply(results, thisGroup); + results.push(...thisGroup); const nextUrl = getNextPage(response.headers.link); if (nextUrl) { @@ -279,7 +296,7 @@ function callbackErrorOrThrow(cb, path) { return function handler(object) { let error; if (object.hasOwnProperty('config')) { - const {status, statusText, config: {method, url}} = object; + const {response: {status, statusText}, config: {method, url}} = object; let message = (`${status} error making request ${method} ${url}: "${statusText}"`); error = new ResponseError(message, path, object); log(`${message} ${JSON.stringify(object.data)}`); diff --git a/lib/User.js b/lib/User.js index be86c4fc..3f3b4bb6 100644 --- a/lib/User.js +++ b/lib/User.js @@ -132,6 +132,16 @@ class User extends Requestable { return this._requestAllPages(this.__getScopedUrl('starred'), requestOptions, cb); } + /** + * List email addresses for a user + * @see https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user + * @param {Requestable.callback} [cb] - will receive the list of emails + * @return {Promise} - the promise for the http request + */ + getEmails(cb) { + return this._request('GET', '/user/emails', null, cb); + } + /** * Have the authenticated user follow this user * @see https://developer.github.com/v3/users/followers/#follow-a-user diff --git a/package.json b/package.json index c942525d..f6ff43a1 100644 --- a/package.json +++ b/package.json @@ -8,17 +8,20 @@ "Ændrew Rininsland (http://www.aendrew.com)", "Aurelio De Rosa (http://www.audero.it/)", "Clay Reimann (http://clayreimann.me)", - "Michael Aufreiter (http://substance.io)" + "Michael Aufreiter (http://substance.io)", + "Mathieu Dutour (https://github.com/mathieudutour)" ], "readmeFilename": "README.md", "scripts": { "clean": "gulp clean", "build": "gulp build", "test": "mocha --opts ./mocha.opts test/*.spec.js", + "test-coverage": "NODE_ENV=test nyc mocha --opts ./mocha.opts test/*.spec.js", "test-verbose": "DEBUG=github* npm test", "lint": "gulp lint", "make-docs": "node_modules/.bin/jsdoc -c .jsdoc.json --verbose", - "release": "./release.sh" + "release": "./release.sh", + "codecov": "nyc report --reporter=text-lcov > coverage.lcov && codecov" }, "babel": { "presets": [ @@ -26,33 +29,38 @@ ], "plugins": [ [ - "transform-es2015-modules-umd", - { - "globals": { - "es6-promise": "Promise" - } - } + "add-module-exports", + "transform-es2015-modules-umd" ] ], "env": { "development": { "sourceMaps": "inline" + }, + "test": { + "plugins": [ + "istanbul" + ] } } }, + "nyc": { + "sourceMap": false, + "instrument": false + }, "files": [ - "dist/*", - "lib/*" + "dist/*" ], "dependencies": { - "axios": "^0.10.0", + "axios": "^0.15.2", "debug": "^2.2.0", - "es6-promise": "^3.0.2", "js-base64": "^2.1.9", "utf8": "^2.1.1" }, "devDependencies": { "babel-core": "^6.7.7", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-plugin-istanbul": "3.0.0", "babel-plugin-transform-es2015-modules-umd": "^6.5.0", "babel-preset-es2015": "^6.5.0", "babel-register": "^6.7.2", @@ -60,33 +68,34 @@ "browserify": "^13.0.0", "codecov": "^1.0.1", "del": "^2.2.0", - "eslint-config-google": "^0.5.0", - "eslint-plugin-mocha": "^2.2.0", + "eslint-config-google": "^0.7.0", + "eslint-plugin-mocha": "^4.7.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.2", - "gulp-eslint": "^2.0.0", - "gulp-jscs": "^3.0.2", + "gulp-eslint": "^3.0.1", + "gulp-jscs": "^4.0.0", "gulp-jscs-stylish": "^1.3.0", "gulp-rename": "^1.2.2", - "gulp-sourcemaps": "^1.6.0", - "gulp-uglify": "^1.5.1", + "gulp-sourcemaps": "^2.2.0", + "gulp-uglify": "^2.0.0", "jsdoc": "^3.4.0", "minami": "^1.1.1", - "mocha": "^2.3.4", + "mocha": "^3.1.2", "must": "^0.13.1", - "nock": "^8.0.0", + "nock": "^9.0.2", + "nyc": "9.0.1", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0" }, "repository": { "type": "git", - "url": "git://github.com/michael/github.git" + "url": "git://github.com/github-tools/github.git" }, "keywords": [ "github", "api" ], "bugs": { - "url": "https://github.com/michael/github/issues" + "url": "https://github.com/github-tools/github/issues" } } diff --git a/release.sh b/release.sh index 0b3a3c37..63853dae 100755 --- a/release.sh +++ b/release.sh @@ -1,15 +1,18 @@ #!/bin/bash # This is the automated release script -# make sure all our dependencies are installed so we can publish docs -npm install - # guard against stupid if [ -z "$1" ]; then echo "You must specify a new version level: [patch, minor, major]"; exit 1; fi +# make sure all our dependencies are installed so we can publish docs +npm install + +# try to build to make sure we don't publish something really broken +npm run build + # bump the version echo "npm version $1" npm version $1 @@ -32,5 +35,5 @@ git checkout gh-pages mv out/* docs/ echo $VERSION >> _data/versions.csv git add . -git co -m "adding docs for v$VERSION" +git commit -m "adding docs for v$VERSION" git push diff --git a/test/auth.spec.js b/test/auth.spec.js index 2c03d766..bd0d8205 100644 --- a/test/auth.spec.js +++ b/test/auth.spec.js @@ -13,7 +13,7 @@ describe('Github', function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); user = github.getUser(); @@ -70,7 +70,7 @@ describe('Github', function() { github = new Github({ username: testUser.USERNAME, password: 'fake124', - auth: 'basic' + auth: 'basic', }); user = github.getUser(); @@ -83,7 +83,7 @@ describe('Github', function() { it('should fail authentication and return err', function(done) { user.listNotifications(assertFailure(done, function(err) { - expect(err.status).to.be.equal(401, 'Return 401 status for bad auth'); + expect(err.response.status).to.be.equal(401, 'Return 401 status for bad auth'); expect(err.response.data.message).to.equal('Bad credentials'); done(); diff --git a/test/gist.spec.js b/test/gist.spec.js index 0fa476bd..c9c2e393 100644 --- a/test/gist.spec.js +++ b/test/gist.spec.js @@ -15,7 +15,7 @@ describe('Gist', function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); }); diff --git a/test/helpers/callbacks.js b/test/helpers/callbacks.js index 112464ac..9c80ad98 100644 --- a/test/helpers/callbacks.js +++ b/test/helpers/callbacks.js @@ -7,7 +7,6 @@ export function assertSuccessful(done, cb) { try { expect(err).not.to.exist(err ? (err.response ? err.response.data : err) : 'No error'); expect(res).to.exist(); - expect(xhr).to.be.an.object(); if (cb) { setTimeout(function delay() { diff --git a/test/helpers/helperFunctions.js b/test/helpers/helperFunctions.js new file mode 100644 index 00000000..c35ed64f --- /dev/null +++ b/test/helpers/helperFunctions.js @@ -0,0 +1,43 @@ +export function getNextPage(linksHeader = '') { + const links = linksHeader.split(/\s*,\s*/); // splits and strips the urls + return links.reduce(function(nextUrl, link) { + if (link.search(/rel="next"/) !== -1) { + return (link.match(/<(.*)>/) || [])[1]; + } + + return nextUrl; + }, undefined); +} + +export function deleteRepo(repo, github) { + return github + .getRepo(repo.owner.login, repo.name) + .deleteRepo() + .then((removed) => { + if (removed) { + console.log(repo.full_name, 'deleted'); // eslint-disable-line + } + }); +} + +export function deleteTeam(team, github) { + return github + .getTeam(team.id) + .deleteTeam() + .then((removed) => { + if (removed) { + console.log('team', team.name, 'deleted'); //eslint-disable-line + } + }); +} + +export function deleteProject(project, github) { + return github + .getProject(project.id) + .deleteProject() + .then((removed) => { + if (removed) { + console.log('project', project.name, 'deleted'); //eslint-disable-line + } + }); +} diff --git a/test/helpers/wait.js b/test/helpers/wait.js new file mode 100644 index 00000000..680ea360 --- /dev/null +++ b/test/helpers/wait.js @@ -0,0 +1,5 @@ +export default function(delay = 1000) { + return () => new Promise((resolve) => { + setTimeout(() => resolve(), delay); + }); +} diff --git a/test/issue.spec.js b/test/issue.spec.js index e3d0bb78..5064c556 100644 --- a/test/issue.spec.js +++ b/test/issue.spec.js @@ -2,20 +2,43 @@ import expect from 'must'; import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; +import wait from './helpers/wait'; import {assertSuccessful} from './helpers/callbacks'; +import getTestRepoName from './helpers/getTestRepoName'; describe('Issue', function() { let github; + const testRepoName = getTestRepoName(); let remoteIssues; before(function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); - remoteIssues = github.getIssues(testUser.USERNAME, 'TestRepo'); + return github + .getUser() + .createRepo({name: testRepoName}) + .then(wait(5000)) + .then(function() { + remoteIssues = github.getIssues(testUser.USERNAME, testRepoName); + return remoteIssues.createIssue({ + title: 'Test issue', + body: 'Test issue body', + }); + }) + .then(function() { + return remoteIssues.createMilestone({ + title: 'Default Milestone', + description: 'Test', + }); + }); + }); + + after(function() { + return github.getRepo(testUser.USERNAME, testRepoName).deleteRepo(); }); describe('reading', function() { @@ -69,6 +92,7 @@ describe('Issue', function() { let createdIssueId; let issueCommentId; let createdMilestoneId; + let createdLabel; // 200ms between tests so that Github has a chance to settle beforeEach(function(done) { @@ -78,7 +102,7 @@ describe('Issue', function() { it('should create issue', function(done) { const newIssue = { title: 'New issue', - body: 'New issue body' + body: 'New issue body', }; remoteIssues.createIssue(newIssue, assertSuccessful(done, function(err, issue) { @@ -94,7 +118,7 @@ describe('Issue', function() { it('should edit issue', function(done) { const newProps = { title: 'Edited title', - state: 'closed' + state: 'closed', }; remoteIssues.editIssue(createdIssueId, newProps, assertSuccessful(done, function(err, issue) { @@ -148,7 +172,7 @@ describe('Issue', function() { it('should create a milestone', function(done) { let milestone = { title: 'v42', - description: 'The ultimate version' + description: 'The ultimate version', }; remoteIssues.createMilestone(milestone) @@ -162,7 +186,7 @@ describe('Issue', function() { }); it('should update a milestone', function(done) { let milestone = { - description: 'Version 6 * 7' + description: 'Version 6 * 7', }; expect(createdMilestoneId).to.be.a.number(); @@ -182,5 +206,71 @@ describe('Issue', function() { done(); }).catch(done); }); + + it('should create a label', (done) => { + let label = { + name: 'test', + color: '123456', + }; + + remoteIssues.createLabel(label) + .then(({data: _createdLabel}) => { + expect(_createdLabel).to.have.own('name', label.name); + expect(_createdLabel).to.have.own('color', label.color); + + createdLabel = label.name; + done(); + }).catch(done); + }); + + it('should retrieve a single label', (done) => { + let label = { + name: 'test', + color: '123456', + }; + + remoteIssues.getLabel(label.name) + .then(({data: retrievedLabel}) => { + expect(retrievedLabel).to.have.own('name', label.name); + expect(retrievedLabel).to.have.own('color', label.color); + + done(); + }).catch(done); + }); + + it('should update a label', (done) => { + let label = { + color: '789abc', + }; + + expect(createdLabel).to.be.a.string(); + remoteIssues.editLabel(createdLabel, label) + .then(({data: updatedLabel}) => { + expect(updatedLabel).to.have.own('name', createdLabel); + expect(updatedLabel).to.have.own('color', label.color); + + done(); + }).catch(done); + }); + + it('should list labels', (done) => { + expect(createdLabel).to.be.a.string(); + + remoteIssues.listLabels({}, assertSuccessful(done, function(err, labels) { + expect(labels).to.be.an.array(); + const hasLabel = labels.some((label) => label.name === createdLabel); + expect(hasLabel).to.be.true(); + done(); + })); + }); + + it('should delete a label', (done) => { + expect(createdLabel).to.be.a.string(); + remoteIssues.deleteLabel(createdLabel) + .then(({status}) => { + expect(status).to.equal(204); + done(); + }).catch(done); + }); }); }); diff --git a/test/markdown.spec.js b/test/markdown.spec.js index 22f5d982..eef9fe08 100644 --- a/test/markdown.spec.js +++ b/test/markdown.spec.js @@ -11,7 +11,7 @@ describe('Markdown', function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); markdown = github.getMarkdown(); @@ -19,7 +19,7 @@ describe('Markdown', function() { it('should convert markdown to html as plain Markdown', function(done) { const options = { - text: 'Hello world github/linguist#1 **cool**, and #1!' + text: 'Hello world github/linguist#1 **cool**, and #1!', }; markdown.render(options) @@ -33,7 +33,7 @@ describe('Markdown', function() { const options = { text: 'Hello world github/linguist#1 **cool**, and #1!', mode: 'gfm', - context: 'github/gollum' + context: 'github/gollum', }; markdown.render(options) .then(function({data: html}) { diff --git a/test/organization.spec.js b/test/organization.spec.js index 9d5f75f6..26fd3607 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -9,14 +9,19 @@ describe('Organization', function() { let github; const ORG_NAME = 'github-tools'; const MEMBER_NAME = 'clayreimann'; + let createdProject; before(function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); + return; + }); + after(function() { + return github.getProject(createdProject.id).deleteProject(); }); describe('reading', function() { @@ -35,7 +40,7 @@ describe('Organization', function() { .then(function({data: members}) { expect(members).to.be.an.array(); - let hasClayReimann = members.reduce((found, member) => member.login === MEMBER_NAME || found, false); + const hasClayReimann = members.some((member) => member.login === MEMBER_NAME); expect(hasClayReimann).to.be.true(); done(); @@ -76,28 +81,48 @@ describe('Organization', function() { })); }); - // TODO: The longer this is in place the slower it will get if we don't cleanup random test teams + it('should create an organization team', function(done) { + const options = { + name: testRepoName, + description: 'Created by unit tests', + privacy: 'secret', + }; + + organization.createTeam(options, assertSuccessful(done, function(err, team) { + expect(team.name).to.equal(testRepoName); + expect(team.organization.login).to.equal(testUser.ORGANIZATION); // jscs:ignore + done(); + })); + }); + it('should list the teams in the organization', function() { return organization.getTeams() .then(({data}) => { - const hasTeam = data.reduce( - (found, member) => member.slug === 'fixed-test-team-1' || found, - false); + const hasTeam = data.some((member) => member.slug === testRepoName); expect(hasTeam).to.be.true(); }); }); - it('should create an organization team', function(done) { - const options = { + it('should create a project', function(done) { + organization.createProject({ name: testRepoName, - description: 'Created by unit tests', - privacy: 'secret' - }; + body: 'body', + }, assertSuccessful(done, function(err, project) { + createdProject = project; + expect(project).to.own('name', testRepoName); + expect(project).to.own('body', 'body'); + done(); + })); + }); - organization.createTeam(options, assertSuccessful(done, function(err, team) { - expect(team.name).to.equal(testRepoName); - expect(team.organization.login).to.equal(testUser.ORGANIZATION); // jscs:ignore + it('should list repo projects', function(done) { + organization.listProjects(assertSuccessful(done, function(err, projects) { + expect(projects).to.be.an.array(); + + const hasProject = projects.some((project) => project.name === testRepoName); + + expect(hasProject).to.be.true(); done(); })); }); diff --git a/test/project.spec.js b/test/project.spec.js new file mode 100644 index 00000000..cccf4e81 --- /dev/null +++ b/test/project.spec.js @@ -0,0 +1,171 @@ +import expect from 'must'; + +import Github from '../lib/GitHub'; +import wait from './helpers/wait'; +import testUser from './fixtures/user.json'; +import {assertSuccessful} from './helpers/callbacks'; +import getTestRepoName from './helpers/getTestRepoName'; + +describe('Project', function() { + let github; + const testRepoName = getTestRepoName(); + let project; + let columnId; + let cardId; + + before(function() { + github = new Github({ + username: testUser.USERNAME, + password: testUser.PASSWORD, + auth: 'basic', + }); + + return github + .getUser() + .createRepo({name: testRepoName}) + .then(wait(5000)) + .then(function() { + const remoteRepo = github.getRepo(testUser.USERNAME, testRepoName); + return remoteRepo.createProject({ + name: 'test-project', + body: 'body', + }); + }) + .then(function(_project) { + project = github.getProject(_project.data.id); + }); + }); + + after(function() { + return github.getRepo(testUser.USERNAME, testRepoName).deleteRepo(); + }); + + it('should get repo project', function(done) { + project.getProject(assertSuccessful(done, function(err, project) { + expect(project).to.own('name', 'test-project'); + done(); + })); + }); + + it('should update a project', function(done) { + project.updateProject({ + name: 'another-test-project', + body: 'another-body', + }, assertSuccessful(done, function(err, project) { + expect(project).to.own('name', 'another-test-project'); + expect(project).to.own('body', 'another-body'); + done(); + })); + }); + + it('should create a repo project column', function(done) { + project.createProjectColumn({ + name: 'test-column', + }, assertSuccessful(done, function(err, column) { + expect(column).to.own('name', 'test-column'); + columnId = column.id; + done(); + })); + }); + + it('should list repo project columns', function(done) { + project.listProjectColumns(assertSuccessful(done, function(err, columns) { + expect(columns).to.be.an.array(); + expect(columns.length).to.equal(1); + done(); + })); + }); + + it('should get repo project column', function(done) { + project.getProjectColumn(columnId, assertSuccessful(done, function(err, project) { + expect(project).to.own('name', 'test-column'); + done(); + })); + }); + + it('should update a repo project column', function(done) { + project.updateProjectColumn(columnId, { + name: 'another-test-column', + }, assertSuccessful(done, function(err, column) { + expect(column).to.own('name', 'another-test-column'); + done(); + })); + }); + + it('should create repo project card', function(done) { + project.createProjectCard(columnId, { + note: 'test-card', + }, assertSuccessful(done, function(err, card) { + expect(card).to.own('note', 'test-card'); + cardId = card.id; + done(); + })); + }); + + it('should list cards of a project', function(done) { + project.listProjectCards(assertSuccessful(done, function(err, cards) { + expect(cards).to.be.an.array(); + expect(cards.length).to.equal(1); + done(); + })); + }); + + it('should list cards of a column', function(done) { + project.listColumnCards(columnId, assertSuccessful(done, function(err, cards) { + expect(cards).to.be.an.array(); + expect(cards.length).to.equal(1); + done(); + })); + }); + + it('should get repo project card', function(done) { + project.getProjectCard(cardId, assertSuccessful(done, function(err, card) { + expect(card).to.own('note', 'test-card'); + done(); + })); + }); + + it('should update repo project card', function(done) { + project.updateProjectCard(cardId, { + note: 'another-test-card', + }, assertSuccessful(done, function(err, card) { + expect(card).to.own('note', 'another-test-card'); + done(); + })); + }); + + it('should move repo project card', function(done) { + project.moveProjectCard(cardId, 'top', columnId, assertSuccessful(done, function(err, result) { + expect(result).to.be(true); + done(); + })); + }); + + it('should move repo project column', function(done) { + project.moveProjectColumn(columnId, 'first', assertSuccessful(done, function(err, result) { + expect(result).to.be(true); + done(); + })); + }); + + it('should delete repo project card', function(done) { + project.deleteProjectCard(cardId, assertSuccessful(done, function(err, result) { + expect(result).to.be(true); + done(); + })); + }); + + it('should delete repo project column', function(done) { + project.deleteProjectColumn(columnId, assertSuccessful(done, function(err, result) { + expect(result).to.be(true); + done(); + })); + }); + + it('should delete repo project', function(done) { + project.deleteProject(assertSuccessful(done, function(err, result) { + expect(result).to.be(true); + done(); + })); + }); +}); diff --git a/test/rate-limit.spec.js b/test/rate-limit.spec.js index 23e12d14..c3a5b858 100644 --- a/test/rate-limit.spec.js +++ b/test/rate-limit.spec.js @@ -12,7 +12,7 @@ describe('RateLimit', function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); rateLimit = github.getRateLimit(); diff --git a/test/repository.spec.js b/test/repository.spec.js index f747878d..ef5101cf 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -1,6 +1,7 @@ import expect from 'must'; import Github from '../lib/GitHub'; +import wait from './helpers/wait'; import testUser from './fixtures/user.json'; import loadImage from './fixtures/imageBlob'; import {assertSuccessful, assertFailure} from './helpers/callbacks'; @@ -8,18 +9,18 @@ import getTestRepoName from './helpers/getTestRepoName'; describe('Repository', function() { let github; - let remoteRepo; let user; let imageB64; let imageBlob; const testRepoName = getTestRepoName(); const v10SHA = '20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; - const statusUrl = 'https://api.github.com/repos/michael/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; + const statusUrl = + 'https://api.github.com/repos/github-tools/github/statuses/20fcff9129005d14cc97b9d59b8a3d37f4fb633b'; before(function(done) { github = new Github({ username: testUser.USERNAME, - password: testUser.PASSWORD + password: testUser.PASSWORD, }); loadImage(function(b64, blob) { @@ -30,13 +31,15 @@ describe('Repository', function() { }); describe('reading', function() { + let remoteRepo; + before(function() { - remoteRepo = github.getRepo('michael', 'github'); + remoteRepo = github.getRepo('github-tools', 'github'); }); it('should get repo details', function(done) { remoteRepo.getDetails(assertSuccessful(done, function(err, repo) { - expect(repo).to.have.own('full_name', 'michael/github'); + expect(repo).to.have.own('full_name', 'github-tools/github'); done(); })); @@ -137,7 +140,7 @@ describe('Repository', function() { path: 'test', author: 'AurelioDeRosa', since, - until + until, }; remoteRepo.listCommits(options, assertSuccessful(done, function(err, commits) { @@ -166,7 +169,7 @@ describe('Repository', function() { it('should fail when null ref is passed', function(done) { remoteRepo.getSingleCommit(null, assertFailure(done, function(err) { - expect(err.status).to.be(404); + expect(err.response.status).to.be(404); done(); })); }); @@ -181,6 +184,23 @@ describe('Repository', function() { const contributor = contributors[0]; + expect(contributor).to.have.own('login'); + expect(contributor).to.have.own('contributions'); + + done(); + })); + }); + + it('should show repo contributor stats', function(done) { + remoteRepo.getContributorStats(assertSuccessful(done, function(err, contributors) { + if (!(contributors instanceof Array)) { + console.log(JSON.stringify(contributors, null, 2)); // eslint-disable-line + } + expect(contributors).to.be.an.array(); + expect(contributors.length).to.be.above(1); + + const contributor = contributors[0]; + expect(contributor).to.have.own('author'); expect(contributor).to.have.own('total'); expect(contributor).to.have.own('weeks'); @@ -224,10 +244,10 @@ describe('Repository', function() { }); it('should get a repo by fullname', function(done) { - const repoByName = github.getRepo('michael/github'); + const repoByName = github.getRepo('github-tools/github'); repoByName.getDetails(assertSuccessful(done, function(err, repo) { - expect(repo).to.have.own('full_name', 'michael/github'); + expect(repo).to.have.own('full_name', 'github-tools/github'); done(); })); @@ -265,6 +285,7 @@ describe('Repository', function() { const releaseBody = 'This is my 49 character long release description.'; let sha; let releaseId; + let remoteRepo; before(function() { user = github.getUser(); @@ -278,7 +299,7 @@ describe('Repository', function() { it('should create repo', function(done) { const repoDef = { - name: testRepoName + name: testRepoName, }; user.createRepo(repoDef, assertSuccessful(done, function(err, repo) { @@ -288,6 +309,22 @@ describe('Repository', function() { })); }); + it('should be able to edit repository information', function(done) { + const options = { + name: testRepoName, + description: 'New short description', + homepage: 'http://example.com', + }; + + remoteRepo.updateRepository(options, assertSuccessful(done, + function(err, repository) { + expect(repository).to.have.own('homepage', options.homepage); + expect(repository).to.have.own('description', options.description); + expect(repository).to.have.own('name', testRepoName); + done(); + })); + }); + it('should show repo collaborators', function(done) { remoteRepo.getCollaborators(assertSuccessful(done, function(err, collaborators) { if (!(collaborators instanceof Array)) { @@ -312,26 +349,27 @@ describe('Repository', function() { it('should write to repo', function(done) { remoteRepo.writeFile('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { - remoteRepo.getContents('master', fileName, 'raw', assertSuccessful(done, function(err, fileText) { + wait()().then(() => remoteRepo.getContents('master', fileName, 'raw', + assertSuccessful(done, function(err, fileText) { expect(fileText).to.be(initialText); done(); - })); + }))); })); }); it('should rename files', function(done) { remoteRepo.writeFile('master', fileName, initialText, initialMessage, assertSuccessful(done, function() { - remoteRepo.move('master', fileName, 'new_name', assertSuccessful(done, function() { - remoteRepo.getContents('master', fileName, 'raw', assertFailure(done, function(err) { - expect(err.status).to.be(404); + wait()().then(() => remoteRepo.move('master', fileName, 'new_name', assertSuccessful(done, function() { + wait()().then(() => remoteRepo.getContents('master', fileName, 'raw', assertFailure(done, function(err) { + expect(err.response.status).to.be(404); remoteRepo.getContents('master', 'new_name', 'raw', assertSuccessful(done, function(err, fileText) { expect(fileText).to.be(initialText); done(); })); - })); - })); + }))); + }))); })); }); @@ -392,12 +430,30 @@ describe('Repository', function() { remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, refSpec) { let newRef = { ref: 'refs/heads/new-test-branch', - sha: refSpec.object.sha + sha: refSpec.object.sha, }; remoteRepo.createRef(newRef, assertSuccessful(done)); })); }); + it('should update commit status', function(done) { + const status = { + state: 'success', + target_url: 'http://example.com', // eslint-disable-line camelcase + description: 'Build was successful!', + }; + remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, refSpec) { + remoteRepo.updateStatus(refSpec.object.sha, status, assertSuccessful(done, + function(err, updated) { + expect(updated).to.have.own('state', status.state); + expect(updated).to.have.own('target_url', status.target_url); + expect(updated).to.have.own('description', status.description); + expect(updated).to.have.own('context', 'default'); + done(); + })); + })); + }); + it('should delete ref on repo', function(done) { remoteRepo.deleteRef('heads/new-test-branch', assertSuccessful(done)); }); @@ -424,7 +480,7 @@ describe('Repository', function() { }); it('should get pull requests on repo', function(done) { - const repo = github.getRepo('michael', 'github'); + const repo = github.getRepo('github-tools', 'github'); repo.getPullRequest(153, assertSuccessful(done, function(err, pr) { expect(pr).to.have.own('title'); @@ -444,7 +500,7 @@ describe('Repository', function() { it('should write author and committer to repo', function(done) { const options = { author: {name: 'Author Name', email: 'author@example.com'}, - committer: {name: 'Committer Name', email: 'committer@example.com'} + committer: {name: 'Committer Name', email: 'committer@example.com'}, }; remoteRepo.writeFile('dev', @@ -482,7 +538,7 @@ describe('Repository', function() { remoteRepo.getRef('heads/master', assertSuccessful(done, function(err, refSpec) { let newRef = { ref: 'refs/heads/testing-14', - sha: refSpec.object.sha + sha: refSpec.object.sha, }; remoteRepo.createRef(newRef, assertSuccessful(done, function() { @@ -503,7 +559,7 @@ describe('Repository', function() { it('should be able to write an image to the repo', function(done) { const opts = { - encode: false + encode: false, }; remoteRepo.writeFile('master', imageFileName, imageB64, initialMessage, opts, assertSuccessful(done, @@ -539,7 +595,7 @@ describe('Repository', function() { it('should fail on broken commit', function(done) { remoteRepo.commit('broken-parent-hash', 'broken-tree-hash', initialMessage, assertFailure(done, function(err) { - expect(err.status).to.be(422); + expect(err.response.status).to.be(422); done(); })); }); @@ -560,7 +616,7 @@ describe('Repository', function() { it('should edit a release', function(done) { const releaseDef = { name: releaseName, - body: releaseBody + body: releaseBody, }; remoteRepo.updateRelease(releaseId, releaseDef, assertSuccessful(done, function(err, release) { @@ -589,9 +645,29 @@ describe('Repository', function() { it('should delete a release', function(done) { remoteRepo.deleteRelease(releaseId, assertSuccessful(done)); }); + + it('should create a project', function(done) { + remoteRepo.createProject({ + name: 'test-project', + body: 'body', + }, assertSuccessful(done, function(err, project) { + expect(project).to.own('name', 'test-project'); + expect(project).to.own('body', 'body'); + done(); + })); + }); + + it('should list repo projects', function(done) { + remoteRepo.listProjects(assertSuccessful(done, function(err, projects) { + expect(projects).to.be.an.array(); + expect(projects.length).to.equal(1); + done(); + })); + }); }); describe('deleting', function() { + let remoteRepo; before(function() { remoteRepo = github.getRepo(testUser.USERNAME, testRepoName); }); diff --git a/test/search.spec.js b/test/search.spec.js index 93d852da..21a32935 100644 --- a/test/search.spec.js +++ b/test/search.spec.js @@ -5,14 +5,14 @@ import Github from '../lib/GitHub'; import testUser from './fixtures/user.json'; describe('Search', function() { - this.timeout(20 * 1000); + this.timeout(20 * 1000); // eslint-disable-line no-invalid-this let github; before(function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); nock.load('test/fixtures/search.json'); }); @@ -22,7 +22,7 @@ describe('Search', function() { let search = github.search({ q: 'tetris language:assembly', sort: 'stars', - order: 'desc' + order: 'desc', }); return search.forRepositories(options) @@ -35,7 +35,7 @@ describe('Search', function() { it('should search code', function() { let options; let search = github.search({ - q: 'addClass in:file language:js repo:jquery/jquery' + q: 'addClass in:file language:js repo:jquery/jquery', }); return search.forCode(options) @@ -50,7 +50,7 @@ describe('Search', function() { let search = github.search({ q: 'windows pip label:bug language:python state:open ', sort: 'created', - order: 'asc' + order: 'asc', }); return search.forIssues(options) @@ -63,7 +63,7 @@ describe('Search', function() { it('should search users', function() { let options; let search = github.search({ - q: 'tom repos:>42 followers:>1000' + q: 'tom repos:>42 followers:>1000', }); return search.forUsers(options) diff --git a/test/team.spec.js b/test/team.spec.js index 1f712617..8a5ec8be 100644 --- a/test/team.spec.js +++ b/test/team.spec.js @@ -6,7 +6,7 @@ import {assertFailure} from './helpers/callbacks'; import getTestRepoName from './helpers/getTestRepoName'; const altUser = { - USERNAME: 'mtscout6-test' + USERNAME: 'mtscout6-test', }; function createTestTeam() { @@ -15,14 +15,14 @@ function createTestTeam() { const github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); const org = github.getOrganization(testUser.ORGANIZATION); return org.createTeam({ name, - privacy: 'closed' + privacy: 'closed', }).then(({data: result}) => { const team = github.getTeam(result.id); return {team, name}; @@ -37,10 +37,59 @@ describe('Team', function() { // Isolate tests that are based on a fixed team const github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); - team = github.getTeam(2027812); // github-api-tests/fixed-test-team-1 + const org = github.getOrganization(testUser.ORGANIZATION); + + /* eslint-disable no-console */ + // The code below add a fixed-test-repo-1 + let promiseRepo = new Promise((resolve) => { + org + .createRepo({name: 'fixed-test-repo-1'}) + .then(resolve, () => { + console.log('skiped fixed-test-repo-1 creation'); + resolve(); + }); + }); + + // The code below add a fixed-test-repo-1 + let promiseTeam = org + .createTeam({ + name: 'fixed-test-repo-1', + repo_names: [testUser.ORGANIZATION + '/fixed-test-repo-1'], // eslint-disable-line camelcase + }) + .then(({data: team}) => team) + .catch(() => { + console.log('skiped fixed-test-repo-1 creation'); + // Team already exists, fetch the team + return org.getTeams().then(({data: teams}) => { + let team = teams + .filter((team) => team.name === 'fixed-test-repo-1') + .pop(); + if (!team) { + throw new Error('missing fixed-test-repo-1'); + } + return team; + }); + }); + /* eslint-enable no-console */ + + return promiseRepo.then(() => { + return promiseTeam + .then((t) => { + team = github.getTeam(t.id); + return team; + }) + .then((team) => { + let setupTeam = [ + team.addMembership(altUser.USERNAME), + team.addMembership(testUser.USERNAME), + team.manageRepo(testUser.ORGANIZATION, 'fixed-test-repo-1'), + ]; + return Promise.all(setupTeam); + }); + }); }); it('should get membership for a given user', function() { @@ -56,10 +105,7 @@ describe('Team', function() { // Isolate tests that are based on a fixed team .then(function({data: members}) { expect(members).to.be.an.array(); - let hasTestUser = members.reduce( - (found, member) => member.login === testUser.USERNAME || found, - false - ); + const hasTestUser = members.some((member) => member.login === testUser.USERNAME); expect(hasTestUser).to.be.true(); }); @@ -68,10 +114,7 @@ describe('Team', function() { // Isolate tests that are based on a fixed team it('should get team repos', function() { return team.listRepos() .then(({data}) => { - const hasRepo = data.reduce( - (found, repo) => repo.name === 'fixed-test-repo-1' || found, - false - ); + const hasRepo = data.some((repo) => repo.name === 'fixed-test-repo-1'); expect(hasRepo).to.be.true(); }); @@ -80,7 +123,7 @@ describe('Team', function() { // Isolate tests that are based on a fixed team it('should get team', function() { return team.getTeam() .then(({data}) => { - expect(data.name).to.equal('Fixed Test Team 1'); + expect(data.name).to.equal('fixed-test-repo-1'); }); }); diff --git a/test/user.spec.js b/test/user.spec.js index 81181389..2296781c 100644 --- a/test/user.spec.js +++ b/test/user.spec.js @@ -10,7 +10,7 @@ describe('User', function() { github = new Github({ username: testUser.USERNAME, password: testUser.PASSWORD, - auth: 'basic' + auth: 'basic', }); user = github.getUser(); }); @@ -24,7 +24,7 @@ describe('User', function() { type: 'owner', sort: 'updated', per_page: 90, // eslint-disable-line - page: 10 + page: 10, }; user.listRepos(filterOpts, assertArray(done)); @@ -47,7 +47,7 @@ describe('User', function() { all: true, participating: true, since: '2015-01-01T00:00:00Z', - before: '2015-02-01T00:00:00Z' + before: '2015-02-01T00:00:00Z', }; user.listNotifications(filterOpts, assertArray(done)); @@ -68,4 +68,8 @@ describe('User', function() { it('should unfollow user', function(done) { user.unfollow('ingalls', assertSuccessful(done)); }); + + it('should list the email addresses of the user', function(done) { + user.getEmails(assertSuccessful(done)); + }); }); From 21fe6b6e3ee5fe8a1a133d7dadfd88adcac0bf39 Mon Sep 17 00:00:00 2001 From: Jeanette Head Date: Tue, 20 Dec 2016 14:51:50 -0700 Subject: [PATCH 079/137] feat: use the page option to fetch a single page Signed-off-by: Byron Anderson --- lib/Requestable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Requestable.js b/lib/Requestable.js index 8d39c04f..bad111ac 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -256,7 +256,7 @@ class Requestable { results.push(...thisGroup); const nextUrl = getNextPage(response.headers.link); - if (nextUrl) { + if (nextUrl && typeof options.page !== 'number') { log(`getting next page: ${nextUrl}`); return this._requestAllPages(nextUrl, options, cb, results); } From f075749ed4234c7d76f122879523fbca2eb01f86 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 4 Jan 2017 08:54:30 -0600 Subject: [PATCH 080/137] 3.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f6ff43a1..7c66bb60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "2.4.0", + "version": "3.0.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 46dd1d7c20b6fa686c47d4219a1aff0ca53e6ea0 Mon Sep 17 00:00:00 2001 From: Felix Kling Date: Thu, 5 Jan 2017 08:56:15 -0800 Subject: [PATCH 081/137] Add methods to fetch gist's commit and specific revision (#412) Add support for: - https://developer.github.com/v3/gists/#list-gist-commits - https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist --- lib/Gist.js | 21 +++++++++++++++++++++ test/gist.spec.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/lib/Gist.js b/lib/Gist.js index 14b71322..60f18cf5 100644 --- a/lib/Gist.js +++ b/lib/Gist.js @@ -108,6 +108,27 @@ class Gist extends Requestable { return this._request204or404(`/gists/${this.__id}/star`, null, cb); } + /** + * List the gist's commits + * @see https://developer.github.com/v3/gists/#list-gist-commits + * @param {Requestable.callback} [cb] - will receive the array of commits + * @return {Promise} - the Promise for the http request + */ + listCommits(cb) { + return this._requestAllPages(`/gists/${this.__id}/commits`, null, cb); + } + + /** + * Fetch one of the gist's revision. + * @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist + * @param {string} revision - the id of the revision + * @param {Requestable.callback} [cb] - will receive the revision + * @return {Promise} - the Promise for the http request + */ + getRevision(revision, cb) { + return this._request('GET', `/gists/${this.__id}/${revision}`, null, cb); + } + /** * List the gist's comments * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist diff --git a/test/gist.spec.js b/test/gist.spec.js index c9c2e393..af24f966 100644 --- a/test/gist.spec.js +++ b/test/gist.spec.js @@ -10,6 +10,7 @@ describe('Gist', function() { let gistId; let github; let commentId; + let revisionId; before(function() { github = new Github({ @@ -51,6 +52,7 @@ describe('Gist', function() { expect(gist).to.have.own('public', testGist.public); expect(gist).to.have.own('description', testGist.description); gistId = gist.id; + revisionId = gist.history[0].version; done(); })); @@ -99,6 +101,36 @@ describe('Gist', function() { it('should delete comment', function(done) { gist.deleteComment(commentId, assertSuccessful(done)); }); + + it('should update gist', function(done) { + const newGist = { + files: { + 'README.md': { + content: 'README updated', + }, + }, + }; + gist.update(newGist, assertSuccessful(done, function(err, gist) { + expect(gist.history.length).to.be(2); + expect(gist.files['README.md']).to.have.own('content', newGist.files['README.md'].content); + done(); + })); + }); + + it('should list commits', function(done) { + gist.listCommits(assertSuccessful(done, function(err, commits) { + expect(commits).to.be.an.array(); + done(); + })); + }); + + it('should get revision', function(done) { + gist.getRevision(revisionId, assertSuccessful(done, function(err, gist) { + expect(gist.history.length).to.be(1); + expect(gist.files['README.md']).to.have.own('content', testGist.files['README.md'].content); + done(); + })); + }); }); describe('deleting', function() { From bc37708b4ad245e65d2bb5f6f8a5140868a8d803 Mon Sep 17 00:00:00 2001 From: Clay Reimann Date: Wed, 11 Jan 2017 09:58:18 -0600 Subject: [PATCH 082/137] 3.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7c66bb60..2ea2eb9a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "3.0.0", + "version": "3.1.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From 2deb74c29e9ced29caa3aa99730ed16531a02a7d Mon Sep 17 00:00:00 2001 From: Kairat Bakitow Date: Mon, 30 Jan 2017 23:51:09 +0600 Subject: [PATCH 083/137] Fix incorrect path for delete hook API (#418) --- lib/Repository.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index fb200397..d338b261 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -603,7 +603,7 @@ class Repository extends Requestable { * @return {Promise} - the promise for the http request */ deleteHook(id, cb) { - return this._request('DELETE', `${this.__fullname}/hooks/${id}`, null, cb); + return this._request('DELETE', `/repos/${this.__fullname}/hooks/${id}`, null, cb); } /** From 22b889cd48cd281812b020d85f8ea502af69ddfd Mon Sep 17 00:00:00 2001 From: Julien Vanier Date: Fri, 24 Feb 2017 12:29:42 -0500 Subject: [PATCH 084/137] Docs fix for getProject (#428) --- lib/GitHub.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/GitHub.js b/lib/GitHub.js index 59cb94ff..c5cec4e2 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -117,7 +117,7 @@ class GitHub { /** * Create a new Project wrapper * @param {string} id - the id of the project - * @return {Markdown} + * @return {Project} */ getProject(id) { return new Project(id, this.__auth, this.__apiBase); From 1c18ef0eea29bb0aeb1b5dd79034ce3d1f77baf7 Mon Sep 17 00:00:00 2001 From: Andrii Lundiak Date: Fri, 8 Sep 2017 22:29:22 +0200 Subject: [PATCH 085/137] typo fix in GitHub.js --- lib/GitHub.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/GitHub.js b/lib/GitHub.js index c5cec4e2..fddd72ea 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -71,7 +71,7 @@ class GitHub { /** * Create a new Repository wrapper - * @param {string} user - the user who owns the respository + * @param {string} user - the user who owns the repository * @param {string} repo - the name of the repository * @return {Repository} */ @@ -81,7 +81,7 @@ class GitHub { /** * Create a new Issue wrapper - * @param {string} user - the user who owns the respository + * @param {string} user - the user who owns the repository * @param {string} repo - the name of the repository * @return {Issue} */ From 24223f7a51ba935f1c86ffd552dac20e8f3e359d Mon Sep 17 00:00:00 2001 From: Miyata Jumpei Date: Wed, 27 Sep 2017 01:15:56 +0900 Subject: [PATCH 086/137] chore: fix broken tests (#474) --- lib/Requestable.js | 2 +- test/organization.spec.js | 6 ++++-- test/team.spec.js | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Requestable.js b/lib/Requestable.js index bad111ac..44702b94 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -256,7 +256,7 @@ class Requestable { results.push(...thisGroup); const nextUrl = getNextPage(response.headers.link); - if (nextUrl && typeof options.page !== 'number') { + if (nextUrl && !(options && typeof options.page !== 'number')) { log(`getting next page: ${nextUrl}`); return this._requestAllPages(nextUrl, options, cb, results); } diff --git a/test/organization.spec.js b/test/organization.spec.js index 26fd3607..710ebbcf 100644 --- a/test/organization.spec.js +++ b/test/organization.spec.js @@ -17,11 +17,13 @@ describe('Organization', function() { password: testUser.PASSWORD, auth: 'basic', }); - return; + createdProject = undefined; }); after(function() { - return github.getProject(createdProject.id).deleteProject(); + if (createdProject) { + return github.getProject(createdProject.id).deleteProject(); + } }); describe('reading', function() { diff --git a/test/team.spec.js b/test/team.spec.js index 8a5ec8be..8f975384 100644 --- a/test/team.spec.js +++ b/test/team.spec.js @@ -159,7 +159,7 @@ describe('Team', function() { // Isolate tests that need a new team per test }); it('should add membership for a given user', function() { - return team.addMembership(testUser.USERNAME) + return team.addMembership(altUser.USERNAME) .then(({data}) => { const {state, role} = data; expect(state === 'active' || state === 'pending').to.be.true(); From 64a9223cc3817b583e387efb47f7e10e9e98dba7 Mon Sep 17 00:00:00 2001 From: Clay Jensen-Reimann Date: Sun, 31 Mar 2019 18:49:32 -0500 Subject: [PATCH 087/137] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 919b5eb3..d6c7c16c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +# Maintainers wanted +[Apply within](https://github.com/github-tools/github/issues/539) + # Github.js [![Downloads per month](https://img.shields.io/npm/dm/github-api.svg?maxAge=2592000)][npm-package] From 076229dac843f5519d4b51fcc723cd2705b3e8f8 Mon Sep 17 00:00:00 2001 From: Jared Rewerts Date: Fri, 5 Apr 2019 15:07:59 -0600 Subject: [PATCH 088/137] Fixed null ref test failure. --- test/repository.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/repository.spec.js b/test/repository.spec.js index ef5101cf..40d43397 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -169,7 +169,7 @@ describe('Repository', function() { it('should fail when null ref is passed', function(done) { remoteRepo.getSingleCommit(null, assertFailure(done, function(err) { - expect(err.response.status).to.be(404); + expect(err.response.status).to.be(422); done(); })); }); From dcc347289b047ff35d4af9d6f1c330487e9bac18 Mon Sep 17 00:00:00 2001 From: Jared Rewerts Date: Fri, 5 Apr 2019 14:49:55 -0600 Subject: [PATCH 089/137] Updated markdown GFM test. --- test/markdown.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/markdown.spec.js b/test/markdown.spec.js index eef9fe08..d3738d03 100644 --- a/test/markdown.spec.js +++ b/test/markdown.spec.js @@ -37,7 +37,7 @@ describe('Markdown', function() { }; markdown.render(options) .then(function({data: html}) { - expect(html).to.be('

Hello world github/linguist#1 cool, and #1!

'); // eslint-disable-line + expect(html).to.be('

Hello world github/linguist#1 cool, and gollum#1!

'); // eslint-disable-line done(); }).catch(done); }); From cd264468b459117ab7347b9069daf98a580f282f Mon Sep 17 00:00:00 2001 From: Kenshi Kamata Date: Tue, 9 Apr 2019 12:49:09 +0900 Subject: [PATCH 090/137] feature(User): Add List starred gists API (#475) * get list of starred gist api --- lib/User.js | 17 +++++++++++++++++ test/user.spec.js | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/lib/User.js b/lib/User.js index 3f3b4bb6..7e2660d5 100644 --- a/lib/User.js +++ b/lib/User.js @@ -132,6 +132,23 @@ class User extends Requestable { return this._requestAllPages(this.__getScopedUrl('starred'), requestOptions, cb); } + /** + * Gets the list of starred gists for the user + * @see https://developer.github.com/v3/gists/#list-starred-gists + * @param {Object} [options={}] - any options to refine the search + * @param {Requestable.callback} [cb] - will receive the list of gists + * @return {Promise} - the promise for the http request + */ + listStarredGists(options, cb) { + options = options || {}; + if (typeof options === 'function') { + cb = options; + options = {}; + } + options.since = this._dateToISO(options.since); + return this._request('GET', '/gists/starred', options, cb); + } + /** * List email addresses for a user * @see https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user diff --git a/test/user.spec.js b/test/user.spec.js index 2296781c..b2ecc66e 100644 --- a/test/user.spec.js +++ b/test/user.spec.js @@ -61,6 +61,13 @@ describe('User', function() { user.listStarredRepos(assertArray(done)); }); + it('should show user\'s starred gists', function(done) { + const option = { + since: '2015-01-01T00:00:00Z', + }; + user.listStarredGists(option, assertArray(done)); + }); + it('should follow user', function(done) { user.follow('ingalls', assertSuccessful(done)); }); From cda24412632ac334387d27ec507d075b6b200b69 Mon Sep 17 00:00:00 2001 From: Alangi Derick Date: Thu, 17 Aug 2017 13:55:48 +0100 Subject: [PATCH 091/137] Adding styling to text Added styles to some portion of the text to make it more user friendly :). --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d6c7c16c..3be89eb5 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ [![Travis](https://img.shields.io/travis/github-tools/github.svg?maxAge=60)][travis-ci] [![Codecov](https://img.shields.io/codecov/c/github/github-tools/github.svg?maxAge=2592000)][codecov] -Github.js provides a minimal higher-level wrapper around Github's API. +`Github.js` provides a minimal higher-level wrapper around Github's API. ## Usage @@ -71,7 +71,7 @@ clayreimann.listStarredRepos(function(err, repos) { should include updated JSDoc. ## Installation -Github.js is available from `npm` or [unpkg][unpkg]. +`Github.js` is available from `npm` or [unpkg][unpkg]. ```shell npm install github-api @@ -86,10 +86,10 @@ npm install github-api ``` ## Compatibility -`Github.js` is tested on Node.js: +`Github.js` is tested on `Node.js`: * 6.x -Note: `Github.js` uses Promise, hence it will not work in Node.js < 4 without polyfill. +Note: `Github.js` uses Promise, hence it will not work in `Node.js` < 4 without polyfill. [codecov]: https://codecov.io/github/github-tools/github?branch=master [docs]: http://github-tools.github.io/github/ From 943ac8a7d36dbac6c0848bee9a5ca64dc229f807 Mon Sep 17 00:00:00 2001 From: Andrii Lundiak Date: Sat, 9 Sep 2017 18:41:17 +0200 Subject: [PATCH 092/137] typo fix in Repository.js --- lib/Repository.js | 2 +- lib/Requestable.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Repository.js b/lib/Repository.js index d338b261..45ca3f94 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -14,7 +14,7 @@ import debug from 'debug'; const log = debug('github:repository'); /** - * Respository encapsulates the functionality to create, query, and modify files. + * Repository encapsulates the functionality to create, query, and modify files. */ class Repository extends Requestable { /** diff --git a/lib/Requestable.js b/lib/Requestable.js index 44702b94..ab43d9d0 100644 --- a/lib/Requestable.js +++ b/lib/Requestable.js @@ -124,7 +124,7 @@ class Requestable { /** * if a `Date` is passed to this function it will be converted to an ISO string - * @param {*} date - the object to attempt to cooerce into an ISO date string + * @param {*} date - the object to attempt to coerce into an ISO date string * @return {string} - the ISO representation of `date` or whatever was passed in if it was not a date */ _dateToISO(date) { @@ -235,7 +235,7 @@ class Requestable { * @param {string} path - the path to request * @param {Object} options - the query parameters to include * @param {Requestable.callback} [cb] - the function to receive the data. The returned data will always be an array. - * @param {Object[]} results - the partial results. This argument is intended for interal use only. + * @param {Object[]} results - the partial results. This argument is intended for internal use only. * @return {Promise} - a promise which will resolve when all pages have been fetched * @deprecated This will be folded into {@link Requestable#_request} in the 2.0 release. */ From e26c2927a2a4f7abfe152cbd5233be48865435c4 Mon Sep 17 00:00:00 2001 From: Clay Jensen-Reimann Date: Tue, 9 Apr 2019 14:57:40 -0500 Subject: [PATCH 093/137] Update build versions, document in readme --- .travis.yml | 6 +++--- README.md | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 26f56aa3..ee525e3e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,9 @@ sudo: false language: node_js node_js: - - '6' - - '5' - - '4' + - '11' + - '10' + - '8' cache: directories: diff --git a/README.md b/README.md index 3be89eb5..bf021040 100644 --- a/README.md +++ b/README.md @@ -86,10 +86,7 @@ npm install github-api ``` ## Compatibility -`Github.js` is tested on `Node.js`: -* 6.x - -Note: `Github.js` uses Promise, hence it will not work in `Node.js` < 4 without polyfill. +`Github.js` is tested on node's LTS and current versions. [codecov]: https://codecov.io/github/github-tools/github?branch=master [docs]: http://github-tools.github.io/github/ From 9fb1f2f6fbb61009800bbf2a1dc19da7d94157b5 Mon Sep 17 00:00:00 2001 From: JongChan Choi Date: Tue, 3 Oct 2017 03:50:54 +0900 Subject: [PATCH 094/137] gist id is string --- lib/GitHub.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/GitHub.js b/lib/GitHub.js index fddd72ea..7c3ac24c 100644 --- a/lib/GitHub.js +++ b/lib/GitHub.js @@ -34,7 +34,7 @@ class GitHub { /** * Create a new Gist wrapper - * @param {number} [id] - the id for the gist, leave undefined when creating a new gist + * @param {string} [id] - the id for the gist, leave undefined when creating a new gist * @return {Gist} */ getGist(id) { From 38530fa329d636ff2233065f8048437b1ab4ef51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20P=C3=A9rez?= Date: Sat, 31 Mar 2018 10:09:46 +0200 Subject: [PATCH 095/137] Implementing methods to retrieve list of followers and following users. Github v3 provides the endpoints `followers` and `following` associated to the user entity. This change provides support for them and implements basic unit tests for them. --- lib/User.js | 20 ++++++++++++++++++++ test/user.spec.js | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/lib/User.js b/lib/User.js index 7e2660d5..4848a1c6 100644 --- a/lib/User.js +++ b/lib/User.js @@ -81,6 +81,26 @@ class User extends Requestable { return this._request('GET', this.__getScopedUrl('orgs'), null, cb); } + /** + * List followers of a user + * @see https://developer.github.com/v3/users/followers/#list-followers-of-a-user + * @param {Requestable.callback} [cb] - will receive the list of followers + * @return {Promise} - the promise for the http request + */ + listFollowers(cb) { + return this._request('GET', this.__getScopedUrl('followers'), null, cb); + } + + /** + * List users followed by another user + * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user + * @param {Requestable.callback} [cb] - will receive the list of who a user is following + * @return {Promise} - the promise for the http request + */ + listFollowing(cb) { + return this._request('GET', this.__getScopedUrl('following'), null, cb); + } + /** * List the user's gists * @see https://developer.github.com/v3/gists/#list-a-users-gists diff --git a/test/user.spec.js b/test/user.spec.js index b2ecc66e..9b033ef1 100644 --- a/test/user.spec.js +++ b/test/user.spec.js @@ -34,6 +34,14 @@ describe('User', function() { user.listOrgs(assertArray(done)); }); + it('should get user followers', function(done) { + user.listFollowers(assertArray(done)); + }); + + it('should get user following list', function(done) { + user.listFollowing(assertArray(done)); + }); + it('should get user gists', function(done) { user.listGists(assertArray(done)); }); From 90fb78b2fb4b4e8e607d24a3dacc983caed2437e Mon Sep 17 00:00:00 2001 From: Jared Rewerts Date: Tue, 9 Apr 2019 20:51:40 -0600 Subject: [PATCH 096/137] feature: Add commit author (#547) --- lib/Repository.js | 12 +++++++++++- test/repository.spec.js | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/lib/Repository.js b/lib/Repository.js index 45ca3f94..f59cf0d0 100644 --- a/lib/Repository.js +++ b/lib/Repository.js @@ -334,16 +334,26 @@ class Repository extends Requestable { * @param {string} parent - the SHA of the parent commit * @param {string} tree - the SHA of the tree for this commit * @param {string} message - the commit message + * @param {Object} [options] - commit options + * @param {Object} [options.author] - the author of the commit + * @param {Object} [options.commiter] - the committer * @param {Requestable.callback} cb - will receive the commit that is created * @return {Promise} - the promise for the http request */ - commit(parent, tree, message, cb) { + commit(parent, tree, message, options, cb) { + if (typeof options === 'function') { + cb = options; + options = {}; + } + let data = { message, tree, parents: [parent], }; + data = Object.assign({}, options, data); + return this._request('POST', `/repos/${this.__fullname}/git/commits`, data, cb) .then((response) => { this.__currentTree.sha = response.data.sha; // Update latest commit diff --git a/test/repository.spec.js b/test/repository.spec.js index 40d43397..62bb3ba6 100644 --- a/test/repository.spec.js +++ b/test/repository.spec.js @@ -600,6 +600,45 @@ describe('Repository', function() { })); }); + it('should succeed on proper commit', function(done) { + let parentSHA = ''; + let treeSHA = ''; + remoteRepo.getRef('heads/master').then((ref) => { + parentSHA = ref.data.object.sha; + return remoteRepo.getCommit(parentSHA); + }).then((commit) => { + treeSHA = commit.data.tree.sha; + return remoteRepo.commit(parentSHA, treeSHA, 'is this thing on?'); + }).then((commit) => { + expect(commit.data.author).to.have.own('name', 'Mike de Boer'); + expect(commit.data.author).to.have.own('email', 'mike@c9.io'); + done(); + }); + }); + + it('should allow commit to change author', function(done) { + let parentSHA = ''; + let treeSHA = ''; + remoteRepo.getRef('heads/master').then((ref) => { + parentSHA = ref.data.object.sha; + return remoteRepo.getCommit(parentSHA); + }).then((commit) => { + treeSHA = commit.data.tree.sha; + return remoteRepo.commit(parentSHA, treeSHA, 'Who made this commit?', { + author: { + name: 'Jimothy Halpert', + email: 'jim@dundermifflin.com', + }, + }); + }).then((commit) => { + expect(commit.data.author).to.have.own('name', 'Jimothy Halpert'); + expect(commit.data.author).to.have.own('email', 'jim@dundermifflin.com'); + done(); + }).catch((err) => { + throw err; + }); + }); + it('should create a release', function(done) { const releaseDef = { name: releaseName, From bf6b42a040a2f0461e5ab855496a5a457d3f0c71 Mon Sep 17 00:00:00 2001 From: CodyGramlich Date: Wed, 10 Apr 2019 22:24:26 -0600 Subject: [PATCH 097/137] Use username arg for follow and unfollow requests. --- lib/User.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/User.js b/lib/User.js index 3f3b4bb6..3b5cb653 100644 --- a/lib/User.js +++ b/lib/User.js @@ -150,7 +150,7 @@ class User extends Requestable { * @return {Promise} - the promise for the http request */ follow(username, cb) { - return this._request('PUT', `/user/following/${this.__user}`, null, cb); + return this._request('PUT', `/user/following/${username}`, null, cb); } /** @@ -161,7 +161,7 @@ class User extends Requestable { * @return {Promise} - the promise for the http request */ unfollow(username, cb) { - return this._request('DELETE', `/user/following/${this.__user}`, null, cb); + return this._request('DELETE', `/user/following/${username}`, null, cb); } /** From 5a5d87e94185baced8a8b6268717c5dfac8bcf8e Mon Sep 17 00:00:00 2001 From: Clay Jensen-Reimann Date: Tue, 16 Apr 2019 20:18:34 -0500 Subject: [PATCH 098/137] 3.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2ea2eb9a..4f28fdb9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-api", - "version": "3.1.0", + "version": "3.2.0", "license": "BSD-3-Clause-Clear", "description": "A higher-level wrapper around the Github API.", "main": "dist/components/GitHub.js", From ee64cd1e352ad0354ea6ce0e8abf676a7f57204d Mon Sep 17 00:00:00 2001 From: Clay Jensen-Reimann Date: Tue, 16 Apr 2019 20:45:52 -0500 Subject: [PATCH 099/137] Updated npm deployment token --- .travis.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index ee525e3e..6b6bad91 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,24 +1,21 @@ sudo: false language: node_js node_js: - - '11' - - '10' - - '8' - +- '11' +- '10' +- '8' cache: directories: - - node_modules + - node_modules before_install: npm install -g npm@latest before_script: - - npm run lint - # - npm run build # will need this when we do sauce testing of compiled files +- npm run lint script: - - npm run test-coverage - # - npm run test-dist # test the compiled files +- npm run test-coverage after_success: - - npm run codecov +- npm run codecov before_deploy: - - npm run build +- npm run build deploy: provider: npm skip_cleanup: true @@ -26,4 +23,4 @@ deploy: tags: true email: clayreimann@gmail.com api_key: - secure: TZHqJ9Kh2Qf0GAVDjEOQ01Ez6rGMYHKwVLOKTbnb7nSzF7iiGNT4UwzvYawm0T9p1k7X1WOqW3l7OEbIwoKl7/9azT4BBJm7qUMRfB9Zio5cL3rKubJVz7+LEEIW4iBeDWLanhUDgy9BO2JKCt8bfp/U2tltgXtu9Fm/UFPALI8= + secure: WnLh1m02aF7NvFNILCZ8KsjPuDeSddQI87y8dwAixStr2FhQyz8FIKZN2Qj1N1Q9ZJvBETe5HWs1c9yOjTKBkD0d/eU2hlpnB9WXEFRJVDjiUuMnpAMMvuqTZwYg6kXq5N+of95PX58AYiBiV/qwsdUr/MgjEEYLt5UZgRYQRvE= From 09384e3981de3ef40caddff62fcefccf6aa89523 Mon Sep 17 00:00:00 2001 From: Jared Rewerts Date: Tue, 16 Apr 2019 18:54:09 -0700 Subject: [PATCH 100/137] Fix browser markdown (#548) Got the code from PR #505. Fixes #451. --- lib/Markdown.js | 2 +- test/dist.spec/index.html | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/Markdown.js b/lib/Markdown.js index edc346cc..ebfbb512 100644 --- a/lib/Markdown.js +++ b/lib/Markdown.js @@ -32,7 +32,7 @@ class Markdown extends Requestable { * @return {Promise} - the promise for the http request */ render(options, cb) { - return this._request('POST', '/markdown', options, cb); + return this._request('POST', '/markdown', options, cb, true); } } diff --git a/test/dist.spec/index.html b/test/dist.spec/index.html index da5a21de..b0a32d7b 100644 --- a/test/dist.spec/index.html +++ b/test/dist.spec/index.html @@ -12,7 +12,7 @@